#이맥스: #빌트인 #트리시터

#이맥스: #빌트인 #트리시터

2023-10-01 Note builtin emacs notes treesit

할로 트리시터

Tree-sitter is a parser generator tool and an incremental parsing library.

우분투

sudo apt-get install libtree-sitter-dev --reinstall

DONE tree-sitter upgrade

[2023-02-21 Tue 12:15]

EmacsConf - 2022 - talks - Tree-sitter beyond syntax highlighting GitHub - meain/emacsconf-talk-tree-sitter: Slides/Files for EmacsConf 2022 ta… 이 영상에서 많은 것을 배웠다.

tree-sitter 설치(?)

애매한 부분이 무엇인가? tree-sitter 설치 부터 문제다. 라이브러리가 있었는데 실제 리포에 가보면 바이너리 하나 일 뿐이다. 이게 맞을 것 같다. [2023-02-21 Tue 12:17]

emacs tree-sitter install

Emacs 29 부터 내장 되어 있고, 아래 리포에 가면 내장 버전을 사용하라고 한다. 근데 Spacemacs 에 레이어가 있는데 뭐가 좋을까?

아직 정식도 아닌데 레이어를 사용하는 게 맞다고 본다. Emacs 빌드 할 때 끈다. 그리고 treesit-auto 패키지도 지운다.

home/junghan/sync/man/dotsamples/vanilla/meain-dotfiles/emacs.config/emacs/init.el:2822

GitHub - emacs-tree-sitter/elisp-tree-sitter: Tree-sitter bindings for Emacs … [2023-02-21 Tue 12:36]

libtreesitter

[2023-10-03 Tue 06:43]

termux 에서는 pkg install libtreesitter -y

2023-10-03 20.8 버전으로 라이브러리를 빌드해야 한다.

git clone git@github.com:tree-sitter/tree-sitter.git

Build Tree-sitter-module All Languages

[2023-10-01 Sun 13:30]

https://github.com/casouri/tree-sitter-module

여기서 스크립트를 돌리면 나온다. 관리가 잘 되고 있으니 모든 언어에 대한 모듈이 있다고 본다. Termux 에서도 잘 된다.

Emacs 빌트인

[2023-10-03 Tue 06:45] 29 버전부터 들어간다.

Emacs 언어별 트리시터 모듈 로딩 위치

[2023-10-03 Tue 06:45]

~/.emacs/tree-sitter

가 기본이다. 즉 Emacs 사용자 디렉토리 아래에 있다. 참고하여 설정.

clojure-mode with tree-sitter

[2023-10-03 Tue 07:26] https://metaredux.com/posts/2023/03/12/clojure-mode-meets-tree-sitter.html

HOLD Evil and the Built-In Tree Sitter - M. Rincón

Article

The new Emacs 29 support for tree sitter awesome. Since I’m an evil user, I made a small package to take advantage of the new facilities. If you are interested, the package is on GitHub here. From the README:

새로운 Emacs 29는 트리 시터를 훌륭하게 지원합니다. 저는 evil 사용자이기 때문에 작은 package 새로운 시설을 활용합니다. 관심이 있으시면 패키지는 GitHub here에 있습니다. =README=에서:

This package provides some basic additional actions for evil-mode using the new built-in tree sitter library. The package only works with Emacs 29 or greater. To activate, just run M-x evil-ts-mode. This was so easy to do, that it hardly merits a package. But perhaps it will be useful to someone.

이 패키지는 새로운 내장 트리 시터 라이브러리를 사용하여 =evil-mode=에 대한 몇 가지 기본 추가 작업을 제공합니다. 이 패키지는 Emacs 29 이상에서만 작동합니다. 활성화하려면 =M-x evil-ts-mode=를 실행하십시오. 이것은 하기가 너무 쉬웠기 때문에 패키지의 가치가 거의 없었습니다. 그러나 아마도 누군가에게 유용할 것입니다.

In visual mode, you can select a if/try/etc statement with s. So when you are inside an if statement, the sequence vas will select it. Similarly, f selects a function and c selects a class. On these cases, there is no difference between inner and outer text objects.

시각적 모드에서 =s=가 포함된 =if/try/etc 문=을 선택할 수 있습니다. 따라서 if 문 안에 있을 때 시퀀스 =vas=가 선택합니다. 마찬가지로 =f=는 함수를 선택하고 =c=는 클래스를 선택합니다. 이러한 경우 내부 텍스트 개체와 외부 텍스트 개체 간에 차이가 없습니다.

In normal state, you can move to the beginning or the end of a class with [c and ]c. Similarly, [f and ]f moves you to the start or end of a function. And [w moves you to the start of a sentence, and ]w to the end (these last two bindings are not great, but ]s is usually taken for navigating spelling errors). I created this package for my own personal use, so the default bindings may not be what you want. Of course, you can change that. The mode map is evil-ts-mode-map.

정상 상태에서 [c]c=로 클래스의 시작 또는 끝으로 이동할 수 있습니다. 마찬가지로 =[f 및 =]f=는 함수의 시작 또는 끝으로 이동합니다. 그리고 =[w=는 문장의 시작 부분으로 이동하고 =]w=는 끝 부분으로 이동합니다(마지막 두 바인딩은 좋지 않지만 =]s=는 일반적으로 철자 오류를 탐색하는 데 사용됩니다). 개인적 용도로 이 패키지를 만들었으므로 기본 바인딩이 원하는 것이 아닐 수도 있습니다. 물론 변경할 수 있습니다. 모드 맵은 =evil-ts-mode-map=입니다. [2023-03-27 Mon 09:20]

evil-ts-mode

[2023-03-27 Mon 08:57] git@github.com:foxfriday/evil-ts.git

GitHub - foxfriday/evil-ts: Actions for Emacs evil-mode using the new built-i…

내장 treesit 을 사용하는 것이 정답이다.

왜냐? 모드를 나눠서 사용할 수 있다. 결국 그렇게 될 수 밖에 없다. [2023-03-27 Mon 09:20]

Related-Notes

References

마지막 수정일자