From 89f81be31bf1a3bf0d4e80bc190b2193e89ff533 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bla=C5=BE=20Hrastnik?= Date: Wed, 7 Apr 2021 14:04:13 +0900 Subject: [PATCH] Add yet more language definitions. --- Cargo.lock | 1 + TODO.md | 19 ++++++++++++--- languages.toml | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 81 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d3cbf53da..cf17f056b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -486,6 +486,7 @@ version = "0.1.0" dependencies = [ "anyhow", "helix-syntax", + "log", "once_cell", "regex", "ropey", diff --git a/TODO.md b/TODO.md index fa19b7faa..9561660e4 100644 --- a/TODO.md +++ b/TODO.md @@ -3,6 +3,17 @@ ------ +- tree sitter: + - lua + - markdown + - zig + - regex + - vue + - kotlin + - julia + - clojure + - erlang + - [ ] use signature_help_provider and completion_provider trigger characters in a hook to trigger signature help text / autocompletion - [ ] document_on_type provider triggers @@ -19,8 +30,8 @@ - [ ] yank on delete - [ ] :x for closing buffers -- [ ] jumplist (push selections on goto / select on the view) -- [ ] repeat insert/command -> transaction +- [x] jumplist (push selections on goto / select on the view) +- [x] repeat insert/command -> transaction - [ ] repeat selection - [] jump to alt buffer @@ -36,6 +47,9 @@ - [ ] lsp: formatting - [x] lsp: goto +- [ ] search: wrap around file +- [ ] search: smart case by default: insensitive unless upper detected + - decide if markdown should have vertical padding too - the hooks system should be better for pre/post insert. @@ -48,7 +62,6 @@ - [ ] bracket pairs - [x] comment block (gcc) - [ ] completion signature popups/docs -- [ ] multiple views into the same file - [ ] selection align - [ ] store some state between restarts: file positions, prompt history - [ ] highlight matched characters in completion diff --git a/languages.toml b/languages.toml index 72f30ca41..d327e3a8f 100644 --- a/languages.toml +++ b/languages.toml @@ -19,6 +19,26 @@ path = "../helix-syntax/languages/tree-sitter-toml" indent = { tab-width = 2, unit = " " } +[[language]] +name = "json" +scope = "source.json" +injection-regex = "json" +file-types = ["json"] +roots = [] +path = "../helix-syntax/languages/tree-sitter-json" + +indent = { tab-width = 2, unit = " " } + +[[language]] +name = "c" +scope = "source.c" +injection-regex = "c" +file-types = ["c"] # TODO: ["h"] +roots = [] +path = "../helix-syntax/languages/tree-sitter-c" + +indent = { tab-width = 2, unit = " " } + [[language]] name = "cpp" scope = "source.cpp" @@ -29,6 +49,18 @@ path = "../helix-syntax/languages/tree-sitter-cpp" # TODO: also C highlights indent = { tab-width = 2, unit = " " } +[[language]] +name = "go" +scope = "source.go" +injection-regex = "go" +file-types = ["go"] +roots = ["Gopkg.toml", "go.mod"] +path = "../helix-syntax/languages/tree-sitter-go" + +language-server = { command = "gopls" } +# TODO: gopls needs utf-8 offsets +indent = { tab-width = 2, unit = " " } + [[language]] name = "javascript" scope = "source.js" @@ -71,3 +103,35 @@ path = "../helix-syntax/languages/tree-sitter-python" language-server = { command = "pyls" } # TODO: pyls needs utf-8 offsets indent = { tab-width = 2, unit = " " } + +[[language]] +name = "ruby" +scope = "source.ruby" +injection-regex = "ruby" +file-types = ["rb"] +roots = [] +path = "../helix-syntax/languages/tree-sitter-ruby" + +language-server = { command = "solargraph", args = ["stdio"] } +indent = { tab-width = 2, unit = " " } + +[[language]] +name = "bash" +scope = "source.bash" +injection-regex = "bash" +file-types = ["sh", "bash"] +roots = [] +path = "../helix-syntax/languages/tree-sitter-bash" + +language-server = { command = "bash-language-server", args = ["start"] } +indent = { tab-width = 2, unit = " " } + +[[language]] +name = "php" +scope = "source.php" +injection-regex = "php" +file-types = ["php"] +roots = [] +path = "../helix-syntax/languages/tree-sitter-php" + +indent = { tab-width = 2, unit = " " }