HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
casouri
tree-sitter-module
Python2023–2023
casouri / tree-sitter-module

tree-sitter-module

Building script for tree-sitter language definitions

2Distinct people
3Mentions
0Explicit recommenders
201GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Building script for tree-sitter language definitions

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by 3-hour interval3 dated mentions

Observed mentions: 2023-09-11 13:24:53 UTC to 2023-09-14 09:23:20 UTC.

012023-09-11 12:00:00 UTC to 2023-09-11 15:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsSep 11, 12:002023-09-11 15:00:00 UTC to 2023-09-11 18:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-09-11 18:00:00 UTC to 2023-09-11 21:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-09-11 21:00:00 UTC to 2023-09-12 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-09-12 00:00:00 UTC to 2023-09-12 03:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-09-12 03:00:00 UTC to 2023-09-12 06:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-09-12 06:00:00 UTC to 2023-09-12 09:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-09-12 09:00:00 UTC to 2023-09-12 12:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-09-12 12:00:00 UTC to 2023-09-12 15:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-09-12 15:00:00 UTC to 2023-09-12 18:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-09-12 18:00:00 UTC to 2023-09-12 21:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-09-12 21:00:00 UTC to 2023-09-13 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsSep 12, 21:002023-09-13 00:00:00 UTC to 2023-09-13 03:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-09-13 03:00:00 UTC to 2023-09-13 06:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-09-13 06:00:00 UTC to 2023-09-13 09:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-09-13 09:00:00 UTC to 2023-09-13 12:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-09-13 12:00:00 UTC to 2023-09-13 15:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-09-13 15:00:00 UTC to 2023-09-13 18:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2023-09-13 18:00:00 UTC to 2023-09-13 21:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-09-13 21:00:00 UTC to 2023-09-14 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-09-14 00:00:00 UTC to 2023-09-14 03:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-09-14 03:00:00 UTC to 2023-09-14 06:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-09-14 06:00:00 UTC to 2023-09-14 09:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-09-14 09:00:00 UTC to 2023-09-14 12:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsSep 14, 09:00

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Sep 11, 12:002023-09-11 12:00:00 UTC2023-09-11 15:00:00 UTC101
Sep 11, 15:002023-09-11 15:00:00 UTC2023-09-11 18:00:00 UTC000
Sep 11, 18:002023-09-11 18:00:00 UTC2023-09-11 21:00:00 UTC000
Sep 11, 21:002023-09-11 21:00:00 UTC2023-09-12 00:00:00 UTC000
Sep 12, 00:002023-09-12 00:00:00 UTC2023-09-12 03:00:00 UTC000
Sep 12, 03:002023-09-12 03:00:00 UTC2023-09-12 06:00:00 UTC000
Sep 12, 06:002023-09-12 06:00:00 UTC2023-09-12 09:00:00 UTC000
Sep 12, 09:002023-09-12 09:00:00 UTC2023-09-12 12:00:00 UTC000
Sep 12, 12:002023-09-12 12:00:00 UTC2023-09-12 15:00:00 UTC000
Sep 12, 15:002023-09-12 15:00:00 UTC2023-09-12 18:00:00 UTC000
Sep 12, 18:002023-09-12 18:00:00 UTC2023-09-12 21:00:00 UTC000
Sep 12, 21:002023-09-12 21:00:00 UTC2023-09-13 00:00:00 UTC000
Sep 13, 00:002023-09-13 00:00:00 UTC2023-09-13 03:00:00 UTC000
Sep 13, 03:002023-09-13 03:00:00 UTC2023-09-13 06:00:00 UTC000
Sep 13, 06:002023-09-13 06:00:00 UTC2023-09-13 09:00:00 UTC000
Sep 13, 09:002023-09-13 09:00:00 UTC2023-09-13 12:00:00 UTC000
Sep 13, 12:002023-09-13 12:00:00 UTC2023-09-13 15:00:00 UTC000
Sep 13, 15:002023-09-13 15:00:00 UTC2023-09-13 18:00:00 UTC101
Sep 13, 18:002023-09-13 18:00:00 UTC2023-09-13 21:00:00 UTC000
Sep 13, 21:002023-09-13 21:00:00 UTC2023-09-14 00:00:00 UTC000
Sep 14, 00:002023-09-14 00:00:00 UTC2023-09-14 03:00:00 UTC000
Sep 14, 03:002023-09-14 03:00:00 UTC2023-09-14 06:00:00 UTC000
Sep 14, 06:002023-09-14 06:00:00 UTC2023-09-14 09:00:00 UTC000
Sep 14, 09:002023-09-14 09:00:00 UTC2023-09-14 12:00:00 UTC101

What Hacker News says

3 sources
BTW: While Emacs 29.1 comes with "treesitter" built-in, you still need to manually build and install any treesitter language plugin implementing the actual language specific parser. This can be fiddly and frustrating doing it yourself. I had a quick success with using this convenience script: https://github.com/casouri/tree-sitter-module/. It provides fully-automated builds for the most popular languages (including typescript, c and c++). This is how it works for "typescript": 1. Clone the repository: https://github.com/casouri/tree-sitter-module/ 2. Install "build-essentials" (providing a c/c++ compiler if you're on Linux). 3. run "./build typescript" from within the repo 4. Copy the resulting shared library from "dist/libtree-sitter-typescript.so" into your "~/.emacs.d/tree-sitter/". 5. Open a random typescript file and try "M-x typescr
Read the rest
ipt-ts-mode" which should not give you any error but instead nice syntax highlighting. You might find there is a treesitter plugin for your language available and it is even supported by "tree-sitter-module" but there is still no major mode, yet. Happened to me for Perl 5.
In Let's write a treesitter major mode for Emacs
Thank you for the recommendation. I will look into building my own tree sitter grammars using https://github.com/casouri/tree-sitter-module as you suggest. Some time ago I followed this guide https://vxlabs.com/2022/06/12/typescript-development-with-em... and added this to my .emacs (use-package tree-sitter :ensure t :config ;; activate tree-sitter on any buffer containing code for which it has a parser available (global-tree-sitter-mode) ;; you can easily see the difference tree-sitter-hl-mode makes for python, ts or tsx ;; by switching on and off (add-hook 'tree-sitter-after-on-hook #'tree-sitter-hl-mode)) (use-package tree-sitter-langs :ensure t :after tree-sitter) Regarding C++, I tried a simpler experiment starting emacs with % open -n -a Emacs --args "-q" and I
Read the rest
think my C++ slowness issue is due to fontlock https://www.gnu.org/software/emacs/manual/html_node/emacs/Fo... Even without a startup file, I can't open https://github.com/ASDAlexander77/TypeScriptCompiler/blob/ma... and scroll through the file unless I also manually do ESC : (global-font-lock-mode 0) I'm sorry if I gave the impression I'm a regular C++ developer. I only use it occasionally. I just happened to remember finding myself unable to use Emacs for that particular file.
In What's new in Emacs 29.1
Sorry, was AFK over the weekend. > Minor modes enabled in this buffer: Font-Lock Tree-Sitter-Hl Tree-Sitter > The major mode is TypeScript mode defined in typescript-mode.el: > Major mode for editing typescript. This actually indicates that you are in fact using some tree sitter extension for doing "font-locking". Do you happen to have installed "elisp-tree-sitter" in the past? Perhaps this setup has some bugs. Or your font-locking is still running regexes in your mix. This is how typescript mode looks for me using Emacs 29.1's built-in tree sitter support: Minor modes enabled in this buffer: Auto-Revert Auto-Save Company Eldoc Flycheck Flyspell Font-Lock Lsp-Headerline-Breadcrumb Lsp-Modeline-Workspace-Status Lsp-Ui-Doc Lsp-Ui Lsp-Ui-Sideline Yas The major mode is TypeScript mode defined in typescript-ts-mode.el: Major mode f
Read the rest
or editing TypeScript. (I am also running "lsp-mode.el" so there are more minor modes running than perhaps in your case.) So, I would remove any tree sitter extension you may have installed in the past. Then to activate the new "typescript-ts-mode" you need to do the following: 1. Clone this repository: https://github.com/casouri/tree-sitter-module/ 2. run "./build typescript" (you'll need build-essentials and a C++ compile but I gathered you are programming in C++, so) 3. Copy the resulting shared library "dist/libtree-sitter-typescript.so" into "~/.emacs.d/tree-sitter/". 4. Open a random typescript file and try "M-x typescript-ts-mode" which should not give you any error but nice syntax highlighting. 5. Of course, you'll need some tweaking to make it your default. Basically, you'll have to add "'typescript-ts-mode" to your "'auto-mode-list". You'll have to do the same for your C++ setup. U̶n̶f̶o̶r̶t̶u̶n̶a̶t̶e̶l̶y̶,̶ ̶t̶h̶e̶ ̶c̶o̶n̶v̶e̶n̶i̶e̶n̶c̶e̶ ̶"̶t̶r̶e̶e̶-̶s̶i̶t̶t̶e̶r̶-̶m̶o̶d̶u̶l̶e̶"̶ ̶b̶u̶i̶l̶d̶ ̶s̶c̶r̶i̶p̶t̶ ̶d̶o̶e̶s̶ ̶n̶o̶t̶ ̶s̶u̶p̶p̶o̶r̶t̶ ̶C̶+̶+̶ ̶o̶u̶t̶ ̶o̶f̶ ̶t̶h̶e̶ ̶b̶o̶x̶.̶ ̶B̶u̶t̶ ̶i̶t̶ ̶d̶o̶e̶s̶ ̶n̶o̶t̶ ̶l̶o̶o̶k̶ ̶c̶o̶m̶p̶l̶i̶c̶a̶t̶e̶d̶ ̶t̶o̶ ̶e̶x̶t̶e̶n̶d̶ ̶i̶t̶ ̶f̶o̶r̶ ̶y̶o̶u̶r̶ ̶p̶u̶r̶p̶o̶s̶e̶s̶.̶ Nonsense, it is supported: Just run "./build cpp". You also seem to need "./build c". This way, I was able to activate the new C++ treesitter mode. If you do not want to go ahead and migrate to built-in treesitter yet -- as you see it's still a bit fiddly to setup as it is brand new -- I would tackle your C++ performance problem first by using Emacs' profiler: 1. M-x profiler-start (select "CPU") 2. Open your C++ file slowing your Emacs down. 3. M-x profiler-stop 4. M-x profiler-report and see what it gives you. Perhaps post an issue with the Emacs maintainers and they can give a clue where your issue comes from. But usually something like this is caused by a run-a-way regex. Good luck!
In What's new in Emacs 29.1

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.