2016-08-18 7 views
2

오류를 제공 할 수있는 특정 파일 확장명 (예 : cs 파일, js 파일, xaml 파일)에 대해 정규식 패턴 (또는 비슷한)을 지정할 수있는 명령 줄 도구를 찾고 있는데, 빌드 중처럼 실행시 경고. 이들은 모든 유형의 일반 텍스트 소스 코드를 스캔합니다.범용 일반 텍스트 linting 도구

특정 언어를위한 도구가 있다는 것을 알고 있습니다 ... 나는 또한 그것들을 사용할 계획입니다. 이 도구는 예를 들어 Rosyln 규칙을 작성하는 데 투자하고 싶지 않은 위치에 플래그를 지정하려는 빠른 패턴을위한 도구입니다. 사람 사람이 특정 패턴 또는 API 사용을 플래그 지정하고 싶다면 누구나은 너무 열심히 생각하지 않고 새 규칙을 추가 할 수 있습니다. 때로는 규칙이 추가되지 않기 때문에 어렵습니다.

소스 토큰 화와 같은 기능은 보너스입니다. 오픈 소스/무료 메가 보너스입니다.

이러한 도구가 있습니까?

답변

2

오래된 skool 가고 싶다면, 당신은 이것에 대한 awk을 먼지 떨이 수 있습니다.

파일을 한 줄씩 검사하고 (선의 구성 가능한 정의에 대해서는 정상적인 상태로) 공백 문자 (IMMSMR)로 조각을 잘라내어 일련의 정규식을 적용하고 일치하는 정규식 뒤에 코드를 실행합니다. 파일의 시작과 끝을 인쇄하여 머리글/바닥 글을 인쇄하는 몇 가지 조건이 있습니다.

필자가 원하는 것처럼 보이지만, IMHO, Perl 또는 루비 스크립트는 훨씬 쉬우 며 오래 전에 AWK를 대신했습니다. 그러나 사용 사례 인 AFAICT는 간단하고 간단합니다.

+1

Awk는 여전히 bash 스크립팅에서 광범위하게 사용됩니다 :) 긴 라이브 awk – matteeyah

+0

@Rex 당신 말이 맞아요, 저는 단지 저를 위해 말했고 모든 사람들이 그것을 대체하지는 않았습니다. 나는 그것을 반영하기 위해 나의 대답을 편집했다. 감사. –

+0

그래서 기본적으로 직접 작성하십시오! 나는이 도구들이 빠르고 쉽게 작동 할 수 있다고 생각합니다. 나를 확인해 주셔서 감사합니다. – alejandro5042

0

우리의 Source Code Search Engine (SCSE)이 가능합니다.

SCSE 렉스 (언어 별 공백을 건너 뛰고 주석을 유지하는 언어 정확 토큰 사용) 소스 파일 집합을 만든 다음 각 토큰 유형에 대한 토큰 색인을 작성합니다. SCSE에 다음과 같은 토큰 기반 검색 쿼리를 제공 할 수 있습니다.

'if' '(' I '=' 

소스 코드에서 패턴을 검색 할 수 있습니다. 이 예제는 의도 된 '=='대신에 '='를 실수로 사용하여 IF 문에 변수 (식별자)를 할당하는 일반적인 실수에 대해 "lints"C 코드와 유사합니다.

검색 속도를 높이기 위해 토큰 인덱스를 사용하여 검색을 수행합니다. 일반적으로 SCSE는 몇 초 만에 수백 줄의 코드를 검색 할 수 있습니다. grep 또는 각 쿼리의 파일 내용을 읽는 다른 방법보다 훨씬 빠릅니다. 또한 토큰 검사가 정확하고 공백/줄 바꿈/설명에 대해 걱정할 필요가 없으므로 쿼리가 훨씬 쉽게 작성되므로 오탐 (false positive)이 줄어 듭니다.

패턴의 히트 목록을 기록하거나 카운트 할 수 있습니다.

일반적으로 SCSE는 대화식으로 사용됩니다. 쿼리는 히트리스트를 생성하고, 히트를 클릭하면 히트가 겹쳐진 소스 텍스트의 페이지 뷰가 생성됩니다. 그러나 SCSE에서 스크립트를 스크립팅 할 수도 있습니다.

SCSE는 약 40 개 언어에 대한 언어 정확도가 높은 렉서로 얻을 수 있습니다.

+0

감사합니다. 나는 한 번 훑어 보았고 도구가 웹 사이트에서 어떻게 작동했는지 즉시 알지 못했습니다. 많은 텍스트가 있습니다! 평가판을 다운로드하려면 개인 정보와 동의서가 필요합니다. 이는 대부분의 것을 GitHub에서 쉽게 다운로드 할 수있는 경우 해제됩니다. 가격 책정 페이지는 거대하고 복잡합니다. 어쨌든이 피드백이 다음 사람에게 유용하다는 것을 알기를 바랍니다. – alejandro5042

+0

의견을 보내 주셔서 감사합니다. 아주 작은 텍스트로 무언가가 어떻게 작동하는지 명확하게 밝히지 않습니다. 아마도 내가 제시 한 예가 텍스트 한 페이지를 읽을 동기를 부여했을 것입니다. 큰 가격 책정 페이지를 도울 수 없습니다. 우리는 많은 제품을 가지고 있습니다. 아마존도 같은 문제가 있습니다. –

+0

,,, Github에서 도움을받은 것은 무엇입니까? –