Skyler Hawthorne
a494f47a5d
Configurable auto pairs ( #1624 )
...
* impl auto pairs config
Implements configuration for which pairs of tokens get auto completed.
In order to help with this, the logic for when *not* to auto complete
has been generalized from a specific hardcoded list of characters to
simply testing if the next/prev char is alphanumeric.
It is possible to configure a global list of pairs as well as at the
language level. The language config will take precedence over the
global config.
* rename AutoPair -> Pair
* clean up insert_char command
* remove Rc
* remove some explicit cloning with another impl
* fix lint
* review comments
* global auto-pairs = false takes precedence over language settings
* make clippy happy
* print out editor config on startup
* move auto pairs accessor into Document
* rearrange auto pair doc comment
* use pattern in Froms
3 years ago
Gokul Soumya
ab2a0f325b
Add object.movement for tree-sitter navigation
3 years ago
Blaž Hrastnik
bd549d8a20
Merge remote-tracking branch 'origin/master' into debug
3 years ago
Blaž Hrastnik
4080341977
cargo fmt + clippy lint
3 years ago
Blaž Hrastnik
7c9ebd05b8
Remove some TODOs
3 years ago
Blaž Hrastnik
66a8612351
cleanup
3 years ago
Blaž Hrastnik
9d41113ae0
Make Layer::parse take &mut tree_sitter::Parser
3 years ago
Blaž Hrastnik
e22dbf102f
Use filter_map rather than flat_map
3 years ago
Blaž Hrastnik
2f4a9fea03
Set byte range on cursor again
3 years ago
Blaž Hrastnik
24314bd844
Only call scopes.load() once
3 years ago
Blaž Hrastnik
4b0205f690
Resolve some outdated comments
3 years ago
Blaž Hrastnik
9508684031
fix: Skip modifying the root layer range, it always covers 0..max
3 years ago
Blaž Hrastnik
7315f6f3e4
Update range markers so we can determine which layers can be reused
3 years ago
Blaž Hrastnik
8a53e34e66
Try to reuse an existing layer based on layer.ranges
3 years ago
Blaž Hrastnik
72eb2ce1f1
Ignore layers without highlight captures, avoid cloning ranges
3 years ago
Blaž Hrastnik
5135fa37eb
Reuse the source slice between layers
3 years ago
Blaž Hrastnik
53d881f172
Store theme scopes on the loader, this way theme isn't passed around
3 years ago
Blaž Hrastnik
6728e44490
syntax: Split parsing and highlighting
3 years ago
Kevin Sjöberg
3a34036310
Use the correct language ID for JavaScript & TypeScript ( #1466 )
...
* Use correct language ID for JavaScript/TypeScript
* Add missing slash
* Only calculate fallback when needed
3 years ago
Sebastian Neubauer
641255ccc8
Add llvm-mir highlighting ( #1398 )
...
* Add injection regex for more languages
To support embedding them in other languages like markdown.
* Add llvm-mir highlighting
LLVM Machine IR is dumped as yaml files that can embed LLVM IR and
Machine IR.
To support this, add a llvm-mir-yaml language that uses the yaml
parser, but uses different injections to highlight IR and MIR.
* Update submodule with fixed multiline comments
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
3 years ago
Matouš Dzivjak
0e7d757869
feat(lsp): configurable diagnostic severity ( #1325 )
...
* feat(lsp): configurable diagnostic severity
Allow severity of diagnostic messages to be configured.
E.g. allow turning of Hint level diagnostics.
Fixes: https://github.com/helix-editor/helix/issues/1007
* Use language_config() method
* Add documentation for diagnostic_severity
* Use unreachable for unknown severity level
* fix: documentation for diagnostic_severity config
3 years ago
Gokul Soumya
d08bdfa838
Use same name used in config files for langs in docs
3 years ago
Gokul Soumya
a78b789406
Auto generate docs for language support
3 years ago
ath3
70c62530ee
Support env flags in shebang ( #1224 )
3 years ago
Blaž Hrastnik
2dbf966293
dap: Start working on runInTerminal support
3 years ago
Blaž Hrastnik
d1854d8e6a
Merge remote-tracking branch 'origin/master' into debug
3 years ago
Omnikar
a424ef4e20
Use default `languages.toml` if user's is invalid ( #994 )
3 years ago
Blaž Hrastnik
f804ed3192
Make shebangs optional, they don't make sense outside of scripts
3 years ago
Blaž Hrastnik
549cdee561
Refactor shebang detection to reuse the loaded buffer
3 years ago
ath3
77dbbc73f9
Detect filetype from shebang line ( #1001 )
3 years ago
Blaž Hrastnik
f2b709a3c3
Merge branch 'master' into debug
3 years ago
Gygaxis Vainhardt
0a38983ee3
Remove three transmutes from helix-core syntax.rs ( #923 )
3 years ago
Dmitry Sharshakov
6aa9838ea6
dap: support arrays as arguments
3 years ago
Kirawi
0cb5e0b2ca
log syntax highlighting init errors ( #895 )
3 years ago
Gokul Soumya
4ee92cad19
Add treesitter textobjects ( #728 )
...
* Add treesitter textobject queries
Only for Go, Python and Rust for now.
* Add tree-sitter textobjects
Only has functions and class objects as of now.
* Fix tests
* Add docs for tree-sitter textobjects
* Add guide for creating new textobject queries
* Add parameter textobject
Only parameter.inside is implemented now, parameter.around
will probably require custom predicates akin to nvim' `make-range`
since we want to select a trailing comma too (a comma will be
an anonymous node and matching against them doesn't work similar
to named nodes)
* Simplify TextObject cell init
3 years ago
Michael Davis
1766bdb9d4
clean up combined-injections comment ( #880 )
3 years ago
Blaž Hrastnik
83a8167402
Invert core -> dap dependency
3 years ago
Blaž Hrastnik
0a6b60085a
Merge branch 'master' into debug
3 years ago
Midnight Exigent
eedcea7e6b
Allow `language.config` (in languages.toml) to be passed in as a toml object ( #807 )
...
* allow language.config (in languages.toml) to be passed in as a toml object
* Change config field for languages from json string to toml object
* remove indents on languages.toml config
* fix: remove patch version from serde_json import in helix-core
* Use same tree-sitter-zig as upstream/master
3 years ago
Dmitry Sharshakov
d943a51e3e
editor: add Node.js debugger
3 years ago
Dmitry Sharshakov
bf53aff27d
Merge branch 'master' into debug
3 years ago
Blaž Hrastnik
64e8f0017c
...
3 years ago
Blaž Hrastnik
dd0b15e1f1
syntax: Properly handle injection-regex for language injections
3 years ago
Blaž Hrastnik
066367c0a4
fix: Need to reset set_byte_range in case cursor_ref is reused.
3 years ago
Dmitry Sharshakov
413e477dc2
lldb: use stdio transport by default
3 years ago
Blaž Hrastnik
4ac29434cb
syntax: Add go & rust locals, improve tree-sitter error message
3 years ago
Blaž Hrastnik
3cb95be452
Update tree-sitter to 0.20
...
0.20 includes querying improvements, we no longer have to convert
fragments to strings but can return an iterator of chunks instead.
3 years ago
Dmitry Sharshakov
b42631942b
Defaults in completions, better schema
3 years ago
Dmitry Sharshakov
e315394631
Merge remote-tracking branch 'origin/master' into debug
3 years ago
Blaž Hrastnik
9d4c301563
Reduce State use a bit further
...
This is a legacy type that should be fully removed.
3 years ago
Dmitry Sharshakov
c463142e5e
Create new debugger config format
3 years ago
Dmitry Sharshakov
b6b99b2487
config: minor fixes
3 years ago
Dmitry Sharshakov
f55a012fb7
editor: add debug session config
3 years ago
Dmitry Sharshakov
c5b210df59
Add debug-adapter field to languages.toml
3 years ago
Blaž Hrastnik
7c834d6506
fix: tree sitter rendering glitches with multiple selection edits
3 years ago
Blaž Hrastnik
0fdb626c2c
Remove embed_runtime feature
...
It's no longer practical to maintain. Closes #451
3 years ago
Nathan Vegdahl
43594049dd
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
3 years ago
fossdd
d4bd5b3766
The item `fmt` was imported redundantly
...
Fixed warning:
```
warning: the item `fmt` is imported redundantly
--> helix-core/src/syntax.rs:98:9
|
16 | fmt,
| --- the item `fmt` is already imported here
...
98 | use std::fmt;
| ^^^^^^^^
|
```
3 years ago
Nathan Vegdahl
e462f32723
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
3 years ago
Cor Peters
cd65a48635
Made toggle_comments language dependent ( #463 )
...
* Made toggle_comments language dependent
* Fixed Test Cases
* Added clippy suggestion
* Small Fixes
* Clippy Suggestion
Co-authored-by: Cor <prive@corpeters.nl>
3 years ago
Cor Peters
0aa43902ca
Added option to provide a custom config file to the lsp. ( #460 )
...
* Added option to provide a custom config file to the lsp.
* Simplified lsp loading routine with anyhow
* Moved config to language.toml
* Fixed test case
* Cargo fmt
* Revert now-useless changes
* Renamed custom_config to config
Co-authored-by: Cor <prive@corpeters.nl>
3 years ago
Nathan Vegdahl
a77274e8bb
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
3 years ago
Blaž Hrastnik
dd2903ff10
Dynamically load grammar libraries at runtime
3 years ago
Kirawi
084a8a9522
Rewritten Rust `highlights.scm` ( #425 )
...
* rewrote Rust highlights.scm
* wip
* wip
* wip
* wip
* fixed type highlighting
* wip
* rewrite again
* moved operators
* missing newline
* missing newline
* update book
* fix constructor highlighting
* fix constructor highlighting
* fix const highlighting
* better constructor highlighting
* remove dup, bug was my locals.scm file
* fixed docs
* merge
* fixed for highlighting
* add yield
* remove yield
* added yield back
* fixed yield highlighting
* unecessary
3 years ago
Nathan Vegdahl
85d5b399de
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
3 years ago
Nathan Vegdahl
22dca3b111
Allow last line in file to lack a line break character.
3 years ago
Perry Thompson
e177b27baf
Add missing import
3 years ago
Nathan Vegdahl
9f62ad0715
Fixed last `unused` warning.
3 years ago
Nathan Vegdahl
c389f41f14
Fix one of the two remaining warnings.
...
One of them was a lot more obvious than I thought.
3 years ago
Nathan Vegdahl
220bc85821
Fix all remaining warnings in helix-core except for two.
...
I'm not sure how to address them, because they look like they
might be bugs, and code is involved. Will poke the relevant people.
3 years ago
Nathan Vegdahl
b571f28641
Remove #[allow(unused)] from helix-core, and fix unused imports.
...
Still a bunch more warnings to fix in core, but it's a start.
3 years ago
Blaž Hrastnik
d4e1ec339e
Don't crash if diagnostics span past EOF
3 years ago
Blaž Hrastnik
1b102d5532
Extract the merge "operator" into helix-core
3 years ago
Blaž Hrastnik
44566ea812
Release 0.3.0
3 years ago
Nathan Vegdahl
e686c3e462
Merge branch 'master' of github.com:helix-editor/helix into line_ending_detection
...
Rebasing was making me manually fix conflicts on every commit, so
merging instead.
3 years ago
Nathan Vegdahl
4efd6713c5
Work on moving code over to LineEnding instead of assuming '\n'.
...
Also some general cleanup and some minor fixes along the way.
3 years ago
wojciechkepka
6825e19509
Only reconfiure highlights when setting theme
3 years ago
wojciechkepka
ce97a2f05f
Add ability to change theme on editor
3 years ago
Wojciech Kępka
716067ba05
Add more ways to detect runtime directory
3 years ago
Blaž Hrastnik
278361a086
Only auto-format for certain languages
...
Fixes #53
Fixes #207
3 years ago
Ivan Tham
7cc13fefe9
Derive debug without feature
...
Note that this also removed those `finish_non_exhaustive()`.
3 years ago
notoria
1a3a924634
Implement Debug for data structure as a feature
3 years ago
Blaž Hrastnik
aebdef8257
Reuse a cursor from the pool if available ( fixes #202 )
3 years ago
Brian Dawn
5463a436a8
Return an error if we request an embedded file that does not exist.
...
This makes the load_runtime_file function behave like the non-embedded
one.
4 years ago
Brian Dawn
e09b0f4eff
Add a smoke test around loading runtime files.
...
This test makes sure we can read some amount of data from the runtime folder.
4 years ago
Brian Dawn
f3db12e240
Simplify the load_runtime_file code.
...
Reduce the number of feature switches for the embed_runtime feature.
4 years ago
Brian Dawn
676719b361
Simplify creating pathbufs.
...
Co-authored-by: Ivan Tham <pickfire@riseup.net>
4 years ago
Brian Dawn
ae105812d6
Apply suggestions from code review
...
Co-authored-by: Ivan Tham <pickfire@riseup.net>
4 years ago
Brian Dawn
62d181de78
Provide a feature flag to be able to embed the runtime folder.
...
These changes provide a new feature flag "embed_runtime" that when
enabled and built in release mode will embed the runtime folder into the
resulting binary.
4 years ago
Blaž Hrastnik
06d8d3f55f
Try to detect language when document file path is set
...
Fixes #91
4 years ago
Blaž Hrastnik
094203c74e
Update deps, introduce the new tree-sitter lifetimes
4 years ago
Blaž Hrastnik
4a9d1163e0
Hacky way to specify indent scopes per language via toml configs.
...
Can't do it via a scm query nicely because it returns an iterator over
all the matches, whereas we want to traverse the tree ourselves.
Can't extract the pattern data from a parsed query either.
Oh well, toml files for now.
4 years ago
Blaž Hrastnik
cd1754f783
Fix runtime dir lookup.
4 years ago
Blaž Hrastnik
0f77f543e5
Determine runtime dir based on executable location or env override.
4 years ago
Blaž Hrastnik
fd4fd12fa3
clippy lint
4 years ago
Blaž Hrastnik
c1e5733b02
Remove the path specifier.
4 years ago
Blaž Hrastnik
71c06c11cb
Import tree sitter queries.
4 years ago
Blaž Hrastnik
f0d49d3ca4
hack: make queries load relative to source dir for now.
...
We want to provide a runtime dir later on.
4 years ago
Blaž Hrastnik
9eaef6e333
Fully drop State references.
4 years ago
Blaž Hrastnik
b52474cf66
clippy lint
4 years ago