Blaž Hrastnik
9712bbb23b
Use which to resolve lsp/dap binaries
...
This resolves the following issue: https://github.com/helix-editor/helix/discussions/962#discussioncomment-1580046
3 years ago
Blaž Hrastnik
7b1d682fe5
dap: fix runInTerminal with lldb-vscode
3 years ago
Blaž Hrastnik
d11b652139
Allow static strings in set_status/set_error so API is nicer
3 years ago
Blaž Hrastnik
fd0e4b1159
dap: Reduce amount of block_on uses
3 years ago
Ludwig Stecher
4429993842
Add `PageUp`, `PageDown`, `Ctrl-u`, `Ctrl-d`, `Home`, `End` keyboard shortcuts to file picker ( #1612 )
...
* Add `PageUp`, `PageDown`, `Ctrl-u`, `Ctrl-d`, `Home`, `End` keyboard shortcuts to file picker
* Refactor file picker paging logic
* change key mapping
* Add overlay component
* Use closure instead of margin to calculate size
* Don't wrap file picker in `Overlay` automatically
3 years ago
Gokul Soumya
4c424d5ee4
Refactor language config loading ( #1658 )
3 years ago
Blaž Hrastnik
bd549d8a20
Merge remote-tracking branch 'origin/master' into debug
3 years ago
Blaž Hrastnik
6ea477ab60
Don't use block_on in jobs.finish(), we can .await
3 years ago
Ivan Tham
759b850859
Allow specifying file start position ( #445 )
...
Like helix-term/src/commands.rs:3426:15
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
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
Matouš Dzivjak
75a8b789d2
LSP code action commands ( #1304 )
...
* feat(lsp): codeAction commands
* Don't block on command call
* Fix lifetime of command execution
* Fix lint issues
3 years ago
Omnikar
98ce2a301d
Load alt default theme if true color is not supported
...
* Move `runtime/themes/base16_default_terminal.toml` to
`base16_theme.toml` alongside `theme.toml`
* Use `terminfo` crate to detect whether the terminal supports true
color and, if the user has no theme configured and their terminal does
not support true color, load the alt default theme instead of the
normal default.
Remove `terminfo` dependency, use `COLORTERM` env instead
Prevent user from switching to an unsupported theme
Add `true-color-override` option
If the terminal is wrongly detected to not support true color,
`true-color-override = true` will override the detection.
Rename `true-color-override` to `true-color`
3 years ago
Blaž Hrastnik
dc8df7ba21
Make thread_picker non-blocking
3 years ago
Blaž Hrastnik
2b4de41bf0
dap: Reply to RunInTerminal
3 years ago
Blaž Hrastnik
5545f8ebb5
dap: Add RunInTerminal reverse request, support replying to requests
3 years ago
Blaž Hrastnik
2dbf966293
dap: Start working on runInTerminal support
3 years ago
Blaž Hrastnik
573cb39926
dap: Remove some unwraps
3 years ago
Blaž Hrastnik
8ffafb826f
dap: Rewrite breakpoints so that there's a single set maintained
3 years ago
Blaž Hrastnik
9ed930b233
Merge remote-tracking branch 'origin/master' into debug
3 years ago
Blaž Hrastnik
6e62c3de47
Simplify some code in editor.rs
3 years ago
Blaž Hrastnik
72576822f3
dap: Replace breakpoint when changed event comes through
3 years ago
Blaž Hrastnik
d1854d8e6a
Merge remote-tracking branch 'origin/master' into debug
3 years ago
Dan Nases Sha
6a4d9693ba
File picker config ( #988 )
...
* squashed WIP commits
* hide_gitignore working with config
* pass reference to new config parameter of file_picker()
* update config option name to match name on walk builder
* add comments to config and documentation of option to book
* add git_ignore option to WalkBuilder within prompt in commands.rs
* WIP: add FilePickerConfig struct
* WIP: cleanup
* WIP: add more options including max_depth
* WIP: changed defaults to match ignore crate defaults
* WIP: change WalkBuilder in global_search() to use config options
* WIP: removed follow_links, changed max_depth to follow config setting
* WIP: update book with file-picker inline table notation
* update documentation for file-picker config in book
* adjusted to [editor.file-picker] in book configuration.md
* adjust comments in editor.rs to be doc comments, cleanup
* adjust comments
* adjust book
3 years ago
Blaž Hrastnik
fa4c59df46
Simplify compositor.find
3 years ago
Cole Helbling
87e61a0894
helix-term/commands: implement cquit ( #1096 )
...
This allows you to exit helix with an exit code, e.g. `:cq 2`.
3 years ago
Jason Hansen
cf831b1a65
Allow piping from stdin into a buffer on startup ( #996 )
...
* Allow piping from stdin into a buffer on startup
* Refactor
* Don't allow piping into new buffer on macOS
* Update helix-term/src/application.rs
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* Update helix-term/src/application.rs
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* Fix
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
3 years ago
Omnikar
a424ef4e20
Use default `languages.toml` if user's is invalid ( #994 )
3 years ago
Blaž Hrastnik
8b85903116
wip
3 years ago
Blaž Hrastnik
f2b709a3c3
Merge branch 'master' into debug
3 years ago
Ivan Tham
49f6c2623f
Bump lsp-types to 0.91.0 ( #932 )
3 years ago
Omnikar
e2ed691537
Implement `hx --tutor` and `:tutor` to load `tutor.txt` ( #898 )
...
* Implement `hx --tutor` and `:tutor` to load `tutor.txt`
* Document `hx --tutor` and `:tutor`
* Change `Document::set_path` to take an `Option`
* `Document::set_path` accepts an `Option<&Path>` instead of `&Path`.
* Remove `Editor::open_tutor` and make tutor-open functionality use
`Editor::open` and `Document::set_path`.
* Use `PathBuf::join`
Co-authored-by: Ivan Tham <pickfire@riseup.net>
* Add comments explaining unsetting tutor path
Co-authored-by: Ivan Tham <pickfire@riseup.net>
3 years ago
radical3dd
d61e5e686b
Use current dir for file picker, after change dir. ( #910 )
3 years ago
Blaž Hrastnik
e9b23c29d8
Ignore errors when disabling mouse capture
3 years ago
CossonLeo
9ac0c95161
Improve completion trigger ( #838 )
...
* improve idle completion trigger
* add completion-trigger-len to book
* rename semantics_completion to language_server_completion and optimize idle completion trigger
3 years ago
Blaž Hrastnik
bda05ec4bf
Use a newtype for ThreadId
3 years ago
Blaž Hrastnik
0a6b60085a
Merge branch 'master' into debug
3 years ago
Ivan Tham
89707a858f
Make auto-completion a config ( #853 )
3 years ago
Omnikar
c71b49497d
Set CWD when editor is started with a directory ( #849 )
3 years ago
Leoi Hung Kin
4d07eaa48b
Prevent LSP Messages from displaying when a prompt is presented ( #824 )
...
* Prevent LSP Messages from displaying when a prompt is presented
* use match guard
3 years ago
Blaž Hrastnik
c7f3a971c0
Remove resolved TODOs
3 years ago
Blaž Hrastnik
8ca91891d1
fix compilation
3 years ago
Blaž Hrastnik
66f26e82ce
Filter the initial completion
3 years ago
Blaž Hrastnik
40abec80e1
Experiment with autocompletion on idle
3 years ago
Blaž Hrastnik
f99bea404f
idle timer wip
3 years ago
Dmitry Sharshakov
bf53aff27d
Merge branch 'master' into debug
3 years ago
Blaž Hrastnik
1540b37f34
lsp: Silence window/logMessage if -v isn't used
3 years ago
Blaž Hrastnik
46f3c69f06
lsp: Don't send notifications until initialize completes
...
Then send open events for all documents with the LSP attached.
3 years ago
Blaž Hrastnik
dc7799b980
lsp: Refactor code that could use document_by_path_mut
3 years ago
Blaž Hrastnik
63e191ea3b
lsp: Simplify lookup under method call
3 years ago
Dmitry Sharshakov
507a1f8dd6
Get breakpoint reports from debugger
3 years ago
Dmitry Sharshakov
c9cd06e904
Fetch stack traces for all threads when debugger sets all_thread_stopped flag
3 years ago
Dmitry Sharshakov
cb31d20b46
mark thread as running when resumed
3 years ago
Dmitry Sharshakov
9939dbf119
Fix clippy warnings
3 years ago
Blaž Hrastnik
b997d2cdeb
dap: Allow setting breakpoints before starting the adapter
3 years ago
Blaž Hrastnik
289303a30d
dap: small TODO
3 years ago
Blaž Hrastnik
42f9718f55
dap: Extract thread_picker, make pause explicitly select a thread
3 years ago
Blaž Hrastnik
27c1b3f98b
dap: Extract a thread_states map
3 years ago
Blaž Hrastnik
5b920c53f0
Refactor resume_application state handling
3 years ago
Dmitry Sharshakov
9c64650a26
force update of stack trace when stopped
3 years ago
Dmitry Sharshakov
e0180a4b88
find main thread automatically if thread stopped is not known
3 years ago
Blaž Hrastnik
0b0b1d850a
dap: Stop comparing file paths per line number
3 years ago
Blaž Hrastnik
2c7b75475f
dap: refactor frame handling
3 years ago
Blaž Hrastnik
986828e75c
dap: Remap keys, match current thread behavior from dap-mode, switch-thread
3 years ago
Blaž Hrastnik
03b2d81406
dap: better yet, use Selection::single..
3 years ago
Blaž Hrastnik
4d24a43651
dap: use smallvec! macro
3 years ago
Blaž Hrastnik
81f51c13fa
dap: continued: THis check is already done before the match statement
3 years ago
Blaž Hrastnik
51328a4966
dap: extract dap_pos_to_pos
3 years ago
Dmitry Sharshakov
e315394631
Merge remote-tracking branch 'origin/master' into debug
3 years ago
Yusuf Bera Ertan
dc57f8dc89
feat: merge default languages.toml with user provided languages.toml, add a generic TOML value merge function ( #654 )
...
* feat: merge default languages.toml with user provided languages.toml
* refactor: use catch-all to override all other values for merge toml
* tests: add a test case for merging languages configs
* refactor: change test module name
3 years ago
Dmitry Sharshakov
2c3e2b979b
Workaround for debugging Go tests
3 years ago
Dmitry Sharshakov
34c6094604
refactor
3 years ago
Dmitry Sharshakov
c4085b4e88
Use saturating_sub for lenght
3 years ago
Dmitry Sharshakov
ec599a1eac
Do not panic if entered unknown code via stack trace
...
e.g. Rust std library
3 years ago
Dmitry Sharshakov
3a5e044c89
languages: support debug for Rust with LLDB
3 years ago
Dmitry Sharshakov
09c994a97a
editor: drop telemetry output messages
3 years ago
Dmitry Sharshakov
d0b0c9b2ef
editor: select a range if stack pointer has an end
3 years ago
Dmitry Sharshakov
132198323c
editor: go to pos where stack pointer is located
3 years ago
Dmitry Sharshakov
be9dc5802a
editor: mark target as running when continued
3 years ago
Dmitry Sharshakov
d93cd2a261
editor: support stepIn, stepOut, next and pause commands
3 years ago
Blaž Hrastnik
28658836ee
Add more event types, simplify event decoding
3 years ago
Dmitry Sharshakov
2aee5f02d0
Style
3 years ago
Dmitry Sharshakov
7233ab2deb
Merge branch 'debug' of https://github.com/sh7dm/helix into debug
3 years ago
Blaž Hrastnik
a964cbae65
Extract handle_debugger_message, we should avoid bloating tokio::select!
3 years ago
Dmitry Sharshakov
91f2c60b36
Jump to stack pointer when stopped
3 years ago
Dmitry Sharshakov
f3e47bfee4
Disable continuing when running
3 years ago
Dmitry Sharshakov
6709b4242f
Drop and terminate debugger
3 years ago
Dmitry Sharshakov
462c8a6ec8
Show debugger output in the statusline
3 years ago
Dmitry Sharshakov
5a06263b78
report status when target started or stopped
3 years ago
Dmitry Sharshakov
bcab93c94e
Update editor window when stopped
3 years ago
Dmitry Sharshakov
a938f5a87a
refactor: handle DAP events in editor main loop
3 years ago
Dmitry Sharshakov
c4970c617e
make CI green
3 years ago
Blaž Hrastnik
94a1951d40
Work towards a breakpoint UI
3 years ago
Blaž Hrastnik
d39baa3b4e
Start integrating into the editor's event loop
3 years ago
Blaž Hrastnik
a4564adadd
fix: Don't crash if language servers time out
3 years ago
Blaž Hrastnik
a2ccfffda1
config: Rename [terminal] to [editor] and pass it into Editor
3 years ago
Luctius
8714b71991
Do not shutdown lsp during claim_term
...
Fixes a bug where the language server is told to shutdown directly after application start.
3 years ago
Blaž Hrastnik
585793eb46
Use an empty stream on Windows to remove duplication
3 years ago
Ivan Tham
821565e4ef
Add ctrl-z to suspend
3 years ago
Dmitry Sharshakov
8361de45dc
Mouse selection support ( #509 )
...
* Initial mouse selection support
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Disable mouse event capture if editor crashes
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Translate screen coordinates to view position
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Select full lines by dragging on line numbers
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* editor: don't register dragging as a jump
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Count graphemes correctly
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Do not select lines when dragging on the line number bar
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Split out verify_screen_coords
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Do not iterate over the graphemes twice
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Switch view by clicking on it
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Add disable-mouse config option
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Support multiple selections with mouse
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Remove unnecessary check
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Refactor using match expression
Co-authored-by: Gokul Soumya <gokulps15@gmail.com>
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Rename local variable
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Rename mouse option
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Refactor code
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Fix dragging selection
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Fix crash when clicking past last line
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Count characters better
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Remove comparison not needed anymore
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Validate coordinates before resolving position
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Tidy up references to editor tree
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Better way to determine line end and avoid overflow
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Fix for last line
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Add unit tests for text_pos_at_screen_coords
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
Co-authored-by: Gokul Soumya <gokulps15@gmail.com>
3 years ago
Cor
9fcbbfa467
Changed startup behaviour to only open a single view when multiple files are specified on the commandline.
...
Changed the behaviour; the first argument on the commandline is the file on display
3 years ago
Ivan Tham
a0a5bd555b
More responsive key input
...
Use biased select!, don't eagerly process lsp message since we want to
prioritize user input rather than lsp messages, but still limit rendering
for lsp messages.
3 years ago
Blaž Hrastnik
83e7dd8602
fix: Temporary fix for #402
3 years ago
Nathan Vegdahl
0b2d51cf5a
Fix unused `Result` warnings in helix-term.
3 years ago
Nathan Vegdahl
efa3389b6a
Fix unused variable, parameter, and `mut` warnings in helix-term.
3 years ago
Nathan Vegdahl
702a0491db
Remove #[allow(unused)] from helix-term, and fix unused imports.
...
Lots of other warning still left. Will address in subsequent commits.
3 years ago
Joe Neeman
ffa2f2590b
Satisfy clippy.
3 years ago
Joe Neeman
d64d75e724
Add some async job infrastructure.
3 years ago
Blaž Hrastnik
f2d8ce3415
Use a deadline when eagerly processing notifications
3 years ago
Keith Simmons
4418e17547
reverse the dependency between helix-tui and helix-view ( #366 )
...
* reverse the dependency between helix-tui and helix-view by moving a fiew types to view
* fix tests
* clippy and format fixes
Co-authored-by: Keith Simmons <keithsim@microsoft.com>
3 years ago
Ivan Tham
10548bf0e3
Fix previous broken refactor key into helix-view
...
Need to be used for autoinfo
Revert "Revert "Refactor key into helix-view""
This reverts commit 10f9f72232
.
3 years ago
Blaž Hrastnik
20f33ead67
minor: Remove old TODOs
3 years ago
Blaž Hrastnik
2f321b9335
lsp: Eagerly process notifications/server calls to avoid re-rendering
3 years ago
Wojciech Kępka
ee80fa8ea9
Cleanup spinners and messages on progress end
3 years ago
wojciechkepka
aca9d73fe4
Hold `Config` in `Application`, expect at least one editor view
3 years ago
wojciechkepka
cc357d5096
Add progress spinners to status line
3 years ago
wojciechkepka
ce97a2f05f
Add ability to change theme on editor
3 years ago
Blaž Hrastnik
10f9f72232
Revert "Refactor key into helix-view"
...
Did not use defaults when custom keymap was used
This reverts commit ca806d4f85
.
3 years ago
Ivan Tham
ca806d4f85
Refactor key into helix-view
...
Now also make use of Deserialize for Config.
3 years ago
wojciechkepka
c5a2fd5da3
Add `close_language_servers` method on `Editor`
3 years ago
wojciechkepka
c2aad859b1
Handle language server shutdown with timeout
3 years ago
wojciechkepka
bbefc1db63
Add an option to disable display of progress in status bar
3 years ago
wojciechkepka
612511dc98
Handle workDoneProgress/create request
3 years ago
wojciechkepka
e1109a5a01
Update handling of progress notification
3 years ago
wojciechkepka
38cb934d8f
Add unique id to each lsp client/server pair
3 years ago
PabloMansanet
f7e00cf720
Configurable keys 2 (Mapping keys to commands) ( #268 )
...
* Add convenience/clarity wrapper for Range initialization
* Add keycode parse and display methods
* Add remapping functions and tests
* Implement key remapping
* Add remapping book entry
* Use raw string literal for toml
* Add command constants
* Make command functions private
* Map directly to commands
* Match key parsing/displaying to Kakoune
* Formatting pass
* Update documentation
* Formatting
* Fix example in the book
* Refactor into single config file
* Formatting
* Refactor configuration and add keymap newtype wrappers
* Address first batch of PR comments
* Replace FromStr with custom deserialize
3 years ago
Wojciech Kępka
c754df12b3
lsp: Check bounds when converting lsp positions ( #204 )
...
* lsp: Make position conversion funcs return `Option`
* Add tests
* Fixes
* Revert pos_to_lsp_pos to panic
3 years ago
Wojciech Kępka
098806ce2a
lsp: Display LSP progress messages ( #216 )
3 years ago
Ivan Tham
b5682f984b
Separate helix-term as a library
...
helix-term stuff will now be documented in rustdoc.
3 years ago
Wojciech Kępka
16b1cfa3be
Add diagnostics keybindings
3 years ago
wojciechkepka
43b92b24d2
Show file picker when directory passed as first arg
3 years ago
Blaž Hrastnik
138787f76e
Drop clap for pico-args
...
We barely have any flags so it's not worth the compilation time or
binary size to use clap.
3 years ago
Blaž Hrastnik
caf4349925
Remove some of the panics, just log instead.
4 years ago
Blaž Hrastnik
c20813690f
View::new is infallible, so is editor.switch/new_file.
4 years ago
Blaž Hrastnik
1ad0581ddd
Eliminate a few more futures dependencies.
4 years ago
Blaž Hrastnik
355ad3cb82
Tokio migration.
4 years ago
Blaž Hrastnik
3b90317060
Add window/showMessage / logMessage stubs so gopls fully starts.
4 years ago
Blaž Hrastnik
3e5f24a9d5
lsp: support both utf-8 and utf-16 offsets.
...
Still need to implement the clangd encoding negotiation, but it's
a start. Should also manually override to utf8 for pyls.
4 years ago
Blaž Hrastnik
8b33ba2284
Correct the naming issue with vsplit and hsplit being swapped.
4 years ago
Blaž Hrastnik
91462af546
Allow starting hx without a file. A new blank file will be created.
4 years ago
Blaž Hrastnik
ceea5eacd8
clippy lint
4 years ago
Blaž Hrastnik
ebfd67ac6a
Use StreamExt::select_next_some to avoid infinitely spinning on empty stream.
4 years ago
Blaž Hrastnik
2a3910c1d9
wip: Async async. Delay response handling with a callback.
4 years ago
Blaž Hrastnik
8a0ab447ec
editor.open can now either replace the current view or open in a split.
4 years ago
Blaž Hrastnik
8328fe926d
Drop refcell use, make view simply ref doc.id.
4 years ago
Blaž Hrastnik
bf95ee27aa
Store Document on the Editor type, make View reference it.
4 years ago
Blaž Hrastnik
cbcacb1063
Merge some imports.
4 years ago
Blaž Hrastnik
c4792efead
clippy lints
4 years ago
Blaž Hrastnik
e9bd9e72c3
Pos conversions always operate on whole documents.
4 years ago
Blaž Hrastnik
51c15da3c3
Hold a reference to executor on the Editor type.
4 years ago