aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBlaž Hrastnik2021-04-07 05:04:13 +0000
committerBlaž Hrastnik2021-04-07 05:04:13 +0000
commit89f81be31bf1a3bf0d4e80bc190b2193e89ff533 (patch)
treef4ab73e6b3cc8a30851f30145f69a8b93615ea55
parentfb792c5bcacee115949fd9311e4155fc4fa999fa (diff)
Add yet more language definitions.
-rw-r--r--Cargo.lock1
-rw-r--r--TODO.md19
-rw-r--r--languages.toml64
3 files changed, 81 insertions, 3 deletions
diff --git a/Cargo.lock b/Cargo.lock
index d3cbf53d..cf17f056 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 fa19b7fa..9561660e 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 72f30ca4..d327e3a8 100644
--- a/languages.toml
+++ b/languages.toml
@@ -20,6 +20,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"
injection-regex = "cpp"
@@ -30,6 +50,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"
injection-regex = "^(js|javascript)$"
@@ -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 = " " }