javadoc과 유사한 주석을 사용하여 Emacs 채우기 문단을 적절하게 사용하기

StackOverflow https://stackoverflow.com/questions/71788

  •  09-06-2019
  •  | 
  •  

문제

저는 직장에서 사용하는 APL 방언에 대한 Emacs 주요 모드를 작성 중입니다.나는 기본 글꼴 잠금을 일으켰고, 댓글 시작 및 댓글 시작-스크립, 댓글/무책임 영역 및 채우기 단락을 설정 한 후에도 작동합니다.

그러나 댓글 블록에는 종종 Javadoc 스타일의 의견이 포함되어 있으며 해당 명령으로 시작하는 줄을 붙이는 것을 피하기 위해 채우기를 원합니다.

이것이 있는 경우(javadoc @ 대신 \):

# This is a comment that is long and should be wrapped.
# \arg Description of argument
# \ret Description of return value

M-q는 나에게 다음을 제공합니다:

# This is a comment that is long and
# should be wrapped. \arg Description
# of argument \ret Description of
# return value

하지만 나는 원한다:

# This is a comment that is long and
# should be wrapped.
# \arg Description of argument
# \ret Description of return value

단락 시작 및 단락-분리를 적절한 값으로 설정하려고 시도했지만 Fill-Paragraph는 여전히 주석 블록 내부에서 작동하지 않습니다.주석 마커를 제거하면 MQ가 원하는대로 작동하므로 단락 시작에 사용하는 regexp가 작동하는 것 같습니다.

메이저 모드에 대해 사용자 정의 필기를 작성해야합니까?CC-Mode에는 이와 같은 사례를 처리하는 것이 있지만 실제로는 복잡합니다. 가능하면 피하고 싶습니다.

도움이 되었습니까?

해결책

문제는 단락 시작 정규식이 작동하려면 실제 주석 문자를 포함하여 전체 줄과 일치해야 한다는 것입니다.다음 elisp는 내가 제시한 예에서 작동합니다.

(setq paragraph-start "^\\s-*\\#\\s-*\\\\\\(arg\\|ret\\).*$")

다음은 이 작업을 수행하는 php-mode에 대한 정규식 예제가 있는 페이지입니다.http://barelyenough.org/blog/2006/10/nicer-phpdoc-comments/

다른 팁

덜 복잡한 기능을 사용하는 다른 모드가 있습니다. fill-paragraph-function.내 설치를 살펴보면 ada-mode와 make-mode의 것이 좋은 예인 것 같습니다.

이 경우 내가 하는 일은 단락 줄과 인수 줄 사이에 빈 줄을 연 다음 M-q를 사용하여 단락 줄을 래핑한 다음 그 사이의 빈 줄을 없애는 것입니다.이상적이지는 않지만 작동하며 반복해야 할 경우 매크로에 기록할 수 있을 만큼 쉽습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top