diff options
| -rw-r--r-- | Makefile | 5 | ||||
| -rw-r--r-- | README.md | 22 | ||||
| -rw-r--r-- | dged.nix | 3 |
3 files changed, 24 insertions, 6 deletions
@@ -121,12 +121,11 @@ FILES = $(DEPS) \ $(CC) $(CFLAGS) -c $< -o $@ grammars: - @if [ -n "$$TREESITTER_GRAMMARS" ]; then \ - IFS=":"; for p in "$$TREESITTER_GRAMMARS"; do \ + @if [ "$(SYNTAX_ENABLE)" = "true" ] && [ -n "$$BUNDLE_TREESITTER_GRAMMARS" ]; then \ + IFS=":"; for p in "$$BUNDLE_TREESITTER_GRAMMARS"; do \ cp -rL --no-preserve=mode "$$p"/ grammars; \ done \ else \ - echo "TODO: download and build default set of grammars"; \ mkdir -p ./grammars; \ fi @@ -21,7 +21,7 @@ expected pre-1.0.0. - [x] Terminal only - [x] Mouse-free editing - [x] Naive and incorrect unicode handling -- [ ] LSP Client implementation +- [ ] LSP Client implementation (in progress) ## Contributing @@ -41,7 +41,25 @@ needed dependencies, issue: $ nix develop ``` -Currently, tree-sitter grammars can only be automatically fetched when using the Nix setup. +Tree-sitter grammars are automatically fetched and bundled when using the Nix setup. +When not using the Nix setup, download/build needed treesitter grammars and set the env +var $BUNDLE_TREESITTER_GRAMMARS to a folder containing built treesitter grammars. The +structure should be like + +``` +/ + <lang-1>/ + parser # the parser binary as a DSO + queries/ + highlights.scm # treesitter queries for highlights + <lang-2>/ + parser + queries/ + highlights.scm + ... +``` + +where `<lang-1>` is for example `cpp` which corresponds to the language id, see man page. To build the editor, first create the build folder @@ -37,7 +37,8 @@ stdenv.mkDerivation { # needed for tests to work in sandboxed builds LOCALE_ARCHIVE = "${glibcLocalesUtf8}/lib/locale/locale-archive"; - TREESITTER_GRAMMARS = with tree-sitter-grammars; + TREESITTER_GRAMMARS = "./build/grammars"; + BUNDLE_TREESITTER_GRAMMARS = with tree-sitter-grammars; linkFarm "tree-sitter-grammars" rec { "bash" = tree-sitter-bash; "c" = tree-sitter-c; |
