2010-03-10 3 views
15

나는 수천 줄의 주석 처리 된 코드가 포함 된 상속 된 코드 기반으로 작업하고 있습니다. 나는 이전의 코더가 단순한 삭제가 아닌 후손을위한 모든 노력을 아끼지 만, 나는 그것을 결코 읽지 않을 것이며 그냥 방해가 될 것임을 안다. 한 가지 문제 예는 특정 코드 세그먼트에 대해 텍스트 검색을 수행 할 때 주석이 달린 코드에서 수십 개의 "false"히트가 발생한다는 것입니다. 피타."dead"(주석 처리 된) 코드를 제거하는 빠르고 쉬운 방법

주석 처리 된 코드의 큰 블록을 빠르고 쉽게 찾을 수 있습니까? 아마도 영리한 RegEx일까요?

나는이 시점에서 VB.NET에서 일하게되며 주석 문자는 단일 아포스트로피입니다.

+1

보관할 댓글이 있습니까? 코드에 일반 텍스트가 포함되어 있지 않은 경우에만 주석을 삭제해야합니까? –

+0

그게 문제입니다. 몇 가지 유용한 주석이 있지만 2, 3 또는 4 줄의 맨 위에 있습니다. 쓸데없고 주석 처리 된 코드는 수십개와 수백 개의 주석 처리 된 라인에서 실행되는 경향이 있습니다. –

+0

나는 영리한 정규식이 이것을 처리 할 수 ​​있다고 생각한다. 뭔가 작은 어포 스트로피로 시작하는 10 개 이상의 인접한 줄을 찾을 수 있습니다. regex가 나를 위해 주석 처리 된 코드를 선택하면 나는 단순히 delete를 치고 다음 블록으로 이동할 수있다. –

답변

13

정규식 검색을 사용할 수 있습니다.

에 대한 검색
^.*'.*$ 

코멘트가있는 한 줄을 찾으려면. 코멘트로 시작하는 줄을 적어도 세 줄 찾으십시오.

^.*'.*\n.*'.*\n.*'.*$ 

키보드를 멀리 두십시오.

+1

궁극적으로 원하는 모든 의견도 제거되지 않습니까? 이전 코드와 원하는 주석을 어떻게 구분합니까? –

+5

이것은 주석이 달린 코드를 찾아서 선택하기위한 것이고 DEL을 누르면 OP의 작업입니다. –

+1

+1. 매크로를 사용하는 것보다 훨씬 빠르고 사용자가 제어 할 수 있습니다. –

0

그게 버전 제어 시스템입니다.

나는 모든 주석 코드를 제거, 그것을 체크 아웃은 버전 관리 (희망하지 비주얼 소스 세이프)의 아래에 있었다 확인하고 다시 그것을 확인 것입니다.

나는 또한에 연습을 낙담 것 미래를위한 개발 팀.

+0

우리는 "잃는"것에 대해 걱정할 필요가 없도록 Subversion을 사용하고 있습니다. 이 코드는 버전 제어 시스템이 표준이되기 전에 수년 전에 VB3로 그 수명을 시작했습니다. 나는 수동으로 껍질을 벗기고 있지만 노동 집약적이어서 좀 더 빠른 방법을 찾고 있습니다. 나는 리팩토링하는 "라이브"코드로 옮기고 싶다. –

+0

교육 문제와 같은 것 같습니다. 팀에 더 이상이 일을하지 말라고 말한 다음 엉망진창을 치우기 위해 힘든 일을 시작하십시오. – duffymo

4

나는 두피모에 동의합니다. 주석 처리 된 코드를 제거하는 신뢰할 수있는 자동 방법을 찾지 못할 것이라고 생각합니다. 나는 당신이 충분히 열심히 검색한다면, 당신은 하나를 발견 할 것이지만 당신의 시간은 당신의 일에 더 잘 소비 될 것이라고 확신합니다.

나는 과거 (너무 자주) 이런 상황에 처해 있었고, 내가 끝내기까지 다양한 모듈을 작업하면서 주석 처리 된 코드를 제거했다.

예를 들어 Person 클래스를 열어 변경하고 나면 아직 제거되지 않은 코드가 주석으로 표시됩니다. 체크 아웃 코드 (우리는 VSS 사용), 나쁜 코드 제거, 체크 인하 고 마지막으로 체크 아웃하여 작업을 수행합니다.

모두 사라지려면 시간이 걸리지 만 문제를 해결하려면 시간을 효과적으로 사용한다고 생각합니다.

+1

"우리는 VSS를 사용합니다"- 정말 죄송합니다. 시장에서 가장 나쁜 제품입니다.비용이 들지 않는 유능한 대안이있을 때 왜 그렇게 할 수 있습니까? 그러나 지원에 감사드립니다. – duffymo

+1

+1. 나는 그 상황에도 있었고 나는 똑같이했다. 특정 코드를 주석 처리하면 귀찮습니다. 삭제하십시오. 그것이 다른 곳에 존재한다면, 지금 당장은 방해가되지 않을 것입니다. 삭제하는 것은 시간 낭비입니다. 실용 주의적이어야하며 작동하는 코드를 정리하고 변경하거나 읽지 않아도되는 시간을 낭비하지 마십시오. – MarkJ

+0

@duffymo : 동의하지만 그건 내 통제 범위를 벗어납니다. (나는 제안을했습니다.) 그러나 그것은 회사 표준이며 대기업입니다. –

0

주석을 삭제하는 데 도움이되는 Visual Studio 용 매크로를 작성하거나 찾는 것이 좋습니다.

일부 의사 논리 : 행 번호에

  • 시작은 첫 번째 문자를 읽습니다. 이 줄 번호를 기억하십시오.
  • VB 주석 문자 인 경우 ' 다음 계속 계속
  • 다음 줄의 첫 번째 문자를 읽습니다. if가 주석 문자 인 경우 계속하십시오.
  • 주석 문자가 아닌 행을 찾을 때 가로 지르는 행 수를 분석하십시오.
  • 통과 한 행 수가 임계 값 n과 일치하면 삭제하십시오.
3
(^\s*//.*\n)^10 

// 스타일의 10 개 동시 주석 라인을 찾으십시오.

주석 테스트 :

\s*//\s*\[Test\].*\n 
+0

이것은 주석 처리 된 코드의로드를 찾는데 도움이되었습니다. – Ronnie

+3

웬일인지이 기능은 더 이상 작동하지 않습니다. (^ \ s * //. * \ n) {10} – Ronnie

+0

@Ronnie : 감사합니다. . VS2010에서 언급했듯이해야만했습니다. 또한 이것이 "찾기/바꾸기 + 정규 표현식 사용"체크 상자에 입력되었음을 알기 위해 조금 시간이 걸렸습니다. 이것은 멋진 팁입니다! – MikeJ

1

여기에서 끝나는 사람은 다음 정규식을 사용하여 주석 처리 된 행을 찾으십시오.

(^|[^/])//[^/] 
0

나는 이것이 오래된 스레드라는 것을 알고 있지만 나를 돕는 속임수는 언급되지 않았습니다.

나는이 정규식 검색 :

(^ \ S * ' = n \..)^그것은 등호 포함하는 행을 주석 찾습니다

. 내 경험에 따르면 주석 처리 된 코드의 대부분 블록에는 할당이 있고 적어도 하나의 라인이 포함되어 있으며 실제 코드에서는 등호가 매우 드물다.

필자는 교체를 자동화하지 않고 F3 키를 누르고 한 줄과 일치하는 경우 입력 한 키를 눌러 강조 표시된 텍스트를 새 줄로 바꿉니다. 주석 처리 된 행의 블록에 포함 된 행에 착륙 한 경우 수동으로 선택하고 Enter 키를 누른 채 F3 키를 다시 누릅니다.

관련 문제