Emacs 31, 개발자 생산성을 높일 새로운 기능들

by DD
8시간 전
조회수 0

Emacs 31에 포함될 Tree-sitter 설정 간소화내장 Markdown 모드 등 핵심 기능이 소개됨

Eglot, Eldoc, 미니버퍼 완성 기능의 개선으로 개발자 경험 향상이 기대됨

커뮤니티에서는 새로운 내장 모드와 설정 변경에 대한 긍정적 반응과 함께 일부 조정 필요성이 논의됨

Emacs Solo와 같이 외부 패키지 없이 핵심 기능만 활용하는 구성의 장점이 부각됨

Tree-sitter 설정 간소화 및 자동 설치

Emacs 31에서는 Tree-sitter 설정 과정이 대폭 간소화되었습니다. 기존에는 `treesit-language-source-alist` 설정과 수동 컴파일이 필요했지만, 이제 `treesit-enabled-modes`와 `treesit-auto-install-grammar` 옵션을 통해 주요 모드에서 Tree-sitter를 자동으로 활성화하고 문법을 설치할 수 있게 됩니다. 이는 TypeScript, Rust, TOML 등 다양한 언어 지원을 더욱 쉽게 만들어 개발자의 설정 부담을 줄여줄 것으로 기대됩니다.

내장 Markdown 모드(markdown-ts-mode)의 향상된 기능

Emacs 31에 실험적으로 포함된 `markdown-ts-mode`는 Org 모드와 유사한 편집 경험을 제공하며, 라이브 코드 블록 렌더링인라인 이미지 보기 기능을 지원합니다. 특히 코드 블록 내에서 해당 언어의 실제 모드를 사용하여 문법 강조를 적용하고, 이미지 링크를 버퍼 내에 직접 렌더링하여 마크다운 문서 작성을 더욱 편리하게 만듭니다. 이 모드는 아직 실험 단계이지만, 커뮤니티 피드백을 통해 개선될 예정입니다.

Eglot 및 Eldoc의 문서 렌더링 개선

Eglot은 이제 LSP(Language Server Protocol) 문서 호버 시 `markdown-ts-mode`를 활용하여 서식을 갖춘 문서를 보여줍니다. 이는 기존의 일반 텍스트 렌더링보다 가독성을 크게 향상시킵니다. 또한, `eldoc at point` 기능은 커서 아래 코드에 대한 도움말을 자동으로 표시하여, 익숙하지 않은 코드베이스를 탐색할 때 코드 이해도를 높이는 데 기여합니다. 다만, 이 기능들은 아직 실험적이므로 사용자가 직접 활성화해야 합니다.

미니버퍼 완성 기능의 스마트화 및 즉각적 업데이트

Emacs 31은 `completion-eager-update` 및 `completion-eager-display` 옵션을 통해 미니버퍼 완성 UI가 타이핑 즉시 업데이트되도록 개선되었습니다. 이는 `icomplete`와 같은 외부 패키지 없이도 향상된 사용자 경험을 제공합니다. 또한, `minibuffer-visible-completions` 설정으로 화살표 키를 이용한 자연스러운 후보 이동이 가능해졌으며, `icomplete` 자체도 버그 수정 및 기능 개선이 이루어져 전반적인 미니버퍼 사용성이 향상되었습니다.

창 레이아웃 조작 및 Speedbar 개선

새로운 창 레이아웃 명령(`transpose`, `rotate`, `flip`)은 수동 분할 없이 창 배열을 유연하게 변경할 수 있게 합니다. 또한, Speedbar가 이제 별도 프레임 대신 측면 창에 도킹되어 현대적인 파일 트리처럼 작동하며, 너비 제한 기능으로 다른 창과의 충돌을 방지합니다. 이는 특히 타일링 환경이나 단일 모니터 사용 시 화면 공간 활용도를 극대화합니다.

버전 관리(VC) 및 Xref 편집 기능 강화

VC 버퍼에서 최신 상태인 파일 숨김 기능이 자동화되어 `vc-dir-refresh` 후 수동 작업이 불필요해졌습니다. 또한, `xref-edit-mode` 도입으로 Xref 버퍼 내에서 직접 편집 및 리팩토링이 가능해져, 기존의 번거로운 `grep-edit-mode` 전환 과정이 사라졌습니다. 이는 개발자가 프로젝트 탐색 및 코드 수정 작업을 더욱 효율적으로 수행하도록 돕습니다.

Changes in Emacs 31 I'm Already Daily Driving