Blaž Hrastnik
cab09093dd
fix: Normalize backtab into shift-tab
...
Fixes #1150
3 years ago
Blaž Hrastnik
34f46e7502
Bump rust to 1.57, fix new lint failures
3 years ago
Ivan Tham
e2b428cc2d
Add last modified file (gm) ( #1093 )
3 years ago
Blaž Hrastnik
d14ca05d6b
Simplify some cases that use return None to use ?
3 years ago
Blaž Hrastnik
ffc89e483b
Mark some more TODOs as resolved
3 years ago
Blaž Hrastnik
662ecf0cd4
Annotate Theme::highlight with #[inline]
3 years ago
Blaž Hrastnik
259678585c
ui: Optimize tree-sitter style lookups
...
Tree sitter returns an index referring to the position of the scope in
the scopes array. We can use that same index to avoid a hashmap lookup
and instead store the styles in an array.
This currently stores the styles in both a map and an array because the
UI still uses hashmap lookups, but it's a reasonable tradeoff.
3 years ago
Blaž Hrastnik
84e939ef58
Provide a single gutter component that does breakpoint || diagnostic
3 years ago
Blaž Hrastnik
d906911417
dap: Prevent crashes on files with no name or breakpoints
3 years ago
Blaž Hrastnik
30ac5869df
dap: Extract diagnostics gutter into gutters.rs
3 years ago
Blaž Hrastnik
8ffafb826f
dap: Rewrite breakpoints so that there's a single set maintained
3 years ago
Blaž Hrastnik
3633f85b38
Pass editor into render_view & gutter, reducing the number of params
3 years ago
Blaž Hrastnik
9ed930b233
Merge remote-tracking branch 'origin/master' into debug
3 years ago
Gokul Soumya
058796c18e
Change default cursors to block for all modes
3 years ago
Blaž Hrastnik
225e8ccf31
Extract gutters into helix-view
3 years ago
Blaž Hrastnik
30171416cb
Gutter functions
3 years ago
RustyStriker
103b5125e4
Detect filetype on :write ( #1141 )
...
fixes #1136
* removed a log::info
* removed temp.rs
* cargo clippy no longer complains
* new get_lang_server function
* get_lang_server is now launch_language_server
* launch_lang_server will now close the previous one
* better code readability
* remove resfresh_ls(and a wrong comment)
3 years ago
Blaž Hrastnik
6e62c3de47
Simplify some code in editor.rs
3 years ago
Gokul Soumya
17473b51d3
Use serde attribute to rename to lowercase
3 years ago
Ivan Tham
67bf4250ca
Optimize space for DocumentId with NonZeroUsize ( #1097 )
...
Now Option<DocumentId> uses one byte rather than two
3 years ago
Gokul Soumya
7961355ba1
Change cursor shape on mode change
...
Fixes #323 . Due to terminal limitations we can only
change the shape of the primary cursor.
3 years ago
Blaž Hrastnik
177b6fcdc9
cargo fmt
3 years ago
Blaž Hrastnik
5f329a22c4
dap: Modify breakpoints in place with no cloning
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
27ceeb83bb
Simplify view/doc macros
3 years ago
Cole Helbling
225e7904ec
helix-view/editor: use SCRATCH_BUFFER_NAME const ( #1104 )
3 years ago
Cole Helbling
c638b6b60e
helix-term/commands: implement buffer-close (bc, bclose) ( #1035 )
...
* helix-view/view: impl method to remove document from jumps
* helix-view/editor: impl close_document
* helix-view/editor: remove close_buffer argument from `close`
According to archseer, this was never implemented or used properly. Now
that we have a proper "buffer close" function, we can get rid of this.
* helix-term/commands: implement buffer-close (bc, bclose)
This behaves the same as Kakoune's `delete-buffer` / `db` command:
* With 3 files opened by the user with `:o ab`, `:o cd`, and `:o ef`:
* `buffer-close` once closes `ef` and switches to `cd`
* `buffer-close` again closes `cd` and switches to `ab`
* `buffer-close` again closes `ab` and switches to a scratch buffer
* With 3 files opened from the command line with `hx -- ab cd ef`:
* `buffer-close` once closes `ab` and switches to `cd`
* `buffer-close` again closes `cd` and switches to `ef`
* `buffer-close` again closes `ef` and switches to a scratch buffer
* With 1 file opened (`ab`):
* `buffer-close` once closes `ab` and switches to a scratch buffer
* `buffer-close` again closes the scratch buffer and switches to a new
scratch buffer
* helix-term/commands: implement buffer-close! (bclose!, bc!)
Namely, if you have a document open in multiple splits, all the splits
will be closed at the same time, leaving only splits without that
document focused (or a scratch buffer if they were all focused on that
buffer).
* helix-view/tree: reset focus if Tree is empty
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
ath3
35c974c9c4
Implement "Goto last modification" command ( #1067 )
3 years ago
Cole Helbling
b824e091a9
helix-term/commands: move SCRATCH_BUFFER_NAME to helix-view/document ( #1091 )
...
This way, the name is accessible everywhere `Document` and related types
are.
3 years ago
Ivan Tham
9d591427be
Fix earlier/later missing changeset update ( #1069 )
...
Fix #1059
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
CossonLeo
a69caff450
search_impl will only align cursor center when it isn't in view ( #959 )
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
CossonLeo
29e6849413
Add LSP rename_symbol (space-r) ( #1011 )
...
improve apply_workspace_edit
3 years ago
Blaž Hrastnik
5938ab1bf1
dap: Fully extract template parameter prompts
3 years ago
Blaž Hrastnik
64bb1f7563
dap: Extract out variable rendering
...
Will improve on the UI later
3 years ago
Omnikar
ed23057ff8
Launch with defaults upon invalid config/theme ( #982 )
...
* Launch with defaults upon invalid config/theme
* Startup message if there is a problematic config
* Statusline error if trying to switch to an invalid theme
* Use serde `deny_unknown_fields` for config
3 years ago
Blaž Hrastnik
14a3502cf1
dap: Move template selection into a picker
...
It's time to move all these components out of ui/editor.rs
3 years ago
Blaž Hrastnik
f2b709a3c3
Merge branch 'master' into debug
3 years ago
Blaž Hrastnik
e80708eba7
Make sure document diagnostics are sorted
3 years ago
Omnikar
cfc8285867
Allow infoboxes to be disabled ( #972 )
...
* Allow infoboxes to be disabled
* Document `infoboxes` default value
* Rename `infoboxes` to `auto_info`
* Document `auto-info`
* Fix incomplete rename
3 years ago
Omnikar
51b4d35dce
Inform when reaching undo/redo bounds ( #981 )
...
* Inform when reaching undo/redo bounds
* `Already at oldest change` when undo fails
* `Already at newest change` when redo fails
* Add missing `the`
3 years ago
ath3
aa4d0b4646
Fix crash on changing from empty scratch buffer to itself ( #975 )
3 years ago
Blaž Hrastnik
e2560f427e
Replace documents SlotMap with BTreeMap
3 years ago
Ivan Tham
3eb829e233
Ensure coords in screen depends on char width ( #885 )
...
The issue affected files with lots of tabs at the start as well.
Fix #840
3 years ago
Daniel Ebert
eb8745db09
Implement key ordering for info box
3 years ago
Omnikar
2f8ad7f890
If switching away from an empty scratch buffer, remove it ( #935 )
...
* If switching away from an empty scratch buffer, remove it
* Move `view.jumps.push` call into `else` clause
* Refactor
3 years ago
Kirawi
cec0cfdaec
Uncomment mapping LSP diagnostics through changes ( #925 )
3 years ago
Blaž Hrastnik
c1e5831b21
set_path: Pass in the function directly
3 years ago
Blaž Hrastnik
3e69a4852e
Simplify set_path
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
Blaž Hrastnik
e36ad8b4ed
minor: Further simplify take_with
3 years ago
Blaž Hrastnik
3edca7854e
completion: fully revert state before apply & insertText common prefix
3 years ago
CossonLeo
2ed01f2d9c
find motion and textobj motion repeat ( #891 )
3 years ago
Blaž Hrastnik
c913bade0a
fix: Indentation used different default on `hx` vs `hx new_file.txt`
3 years ago
Kirawi
0cb5e0b2ca
log syntax highlighting init errors ( #895 )
3 years ago
Oskar Nehlin
0f886af4b9
Add commands for moving between splits with a direction ( #860 )
...
* Add commands for moving between splits with a direction
* Update keymaps
* Change picker mapping
* Add test and clean up some comments
3 years ago
Blaž Hrastnik
182a59b552
Update to rust 1.56 + 2021 edition
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
0a6b60085a
Merge branch 'master' into debug
3 years ago
Ivan Tham
89707a858f
Make auto-completion a config ( #853 )
3 years ago
Blaž Hrastnik
a930f99179
fix: Make sure to actually use idle_timeout config value for the timers
3 years ago
Blaž Hrastnik
633b981db2
Make idle-timeout configurable
3 years ago
Blaž Hrastnik
66f26e82ce
Filter the initial completion
3 years ago
Blaž Hrastnik
f99bea404f
idle timer wip
3 years ago
Dmitry Sharshakov
bf53aff27d
Merge branch 'master' into debug
3 years ago
lurpahi
a958d34bfb
Add option for automatic insertion of closing-parens/brackets/etc ( #779 )
...
* Add auto-pair editor option
* Document auto-pair editor option
* Make cargo fmt happy
* Actually make cargo fmt happy
* Rename auto-pair option to auto-pairs
* Inline a few constants
Co-authored-by: miaomai <cunso@tutanota.com>
3 years ago
kraem
4a003782a5
enable smart case regex search by default ( #761 )
3 years ago
Kirawi
ef532e0c0d
log errors produced when trying to initialize the LSP ( #746 )
3 years ago
Blaž Hrastnik
0b1bc566e4
fix: lsp: Regression with textDocument/didSave not getting sent
3 years ago
Blaž Hrastnik
72cf86e462
Regex prompts should have a history with a specifiable register
3 years ago
Blaž Hrastnik
64099af3f1
Don't panic on save if language_server isn't initialized
3 years ago
Blaž Hrastnik
37606bad47
lsp: doc.language_server() is None until initialize completes
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
59ed1c8c78
Simplify documents & documents_mut()
3 years ago
Blaž Hrastnik
dc7799b980
lsp: Refactor code that could use document_by_path_mut
3 years ago
Blaž Hrastnik
10b690b5bd
Drop some &mut bounds where & would have sufficed
3 years ago
Blaž Hrastnik
800d79b584
ls: Refactor textDocument/didSave in a similar vein
3 years ago
Blaž Hrastnik
184637c55a
lsp: refactor format so we stop cloning the language_server
3 years ago
Blaž Hrastnik
c00cf238af
Simplify textDocument/didClose, we don't need to look up LSP again
3 years ago
Blaž Hrastnik
57ed5180e0
lsp: Improve line ending handling when generating TextEdit
3 years ago
oberblastmeister
99a753a579
Document macros ( #693 )
...
* add docs
* clean up
* remove
* more
* Update helix-view/src/macros.rs
Co-authored-by: Ivan Tham <pickfire@riseup.net>
Co-authored-by: Ivan Tham <pickfire@riseup.net>
3 years ago
Gokul Soumya
e4e93e176c
fix: Merge default palette with user palette
3 years ago
Gokul Soumya
e40e6db227
feat: Default theme palette using 16 terminal colors
3 years ago
Dmitry Sharshakov
698583c241
Support setting breakpoints with mouse
3 years ago
Blaž Hrastnik
b997d2cdeb
dap: Allow setting breakpoints before starting the adapter
3 years ago
Dmitry Sharshakov
5b20f6020a
Merge remote-tracking branch 'origin/master' into debug
...
Contains type fix on helix-term/src/ui/editor.rs:752:13
3 years ago
Omnikar
e772808a5b
Shell commands ( #547 )
...
* Implement shell interaction commands
* Use slice instead of iterator for shell invocation
* Default to `sh` instead of `$SHELL` for shell commands
* Enforce trailing comma in `commands` macro
* Use `|` register for shell commands
* Move shell config to `editor` and use in command
* Update shell command prompts
* Remove clone of shell config
* Change shell function names to match prompts
* Log stderr contents upon external command error
* Remove `unwrap` calls on potential common errors
`shell` will no longer panic if:
* The user-configured shell cannot be found
* The shell command does not output UTF-8
* Remove redundant `pipe` parameter
* Rename `ShellBehavior::None` to `Ignore`
* Display error when shell command is used and `shell = []`
* Document shell commands in `keymap.md`
3 years ago
Dmitry Sharshakov
b42631942b
Defaults in completions, better schema
3 years ago
Dmitry Sharshakov
2d42766a71
wip: refactor parameters in UI start
3 years ago
Dmitry Sharshakov
94901b8677
Customized completion for template parameters
3 years ago
Dmitry Sharshakov
e315394631
Merge remote-tracking branch 'origin/master' into debug
3 years ago
Dmitry Sharshakov
8df6739759
New way of starting debug sessions
3 years ago
Dmitry Sharshakov
890b51b568
Paginated variables
3 years ago
Brian Shu
fa4caf7e3d
remove unsafe
3 years ago
Blaž Hrastnik
28919898e9
fix: KeyEvent::char needs to ignore modifiers
...
Fixes #595
3 years ago
Dmitry Sharshakov
c7759a5aa0
Merge remote-tracking branch 'origin/master' into debug
3 years ago
Kirawi
b99db7c687
Move path util functions from helix-term to helix-core ( #650 )
3 years ago
Blaž Hrastnik
1d45f50781
fix: Don't internally use relative paths in the buffer picker
...
Fixes #619
3 years ago
Blaž Hrastnik
6dd7dc4eb2
fix: xsel copy should not freeze the editor
...
If using --nodetach, xsel would end up continually running in the
foreground, so the command execution would never finish.
Fixes #630
3 years ago
Dmitry Sharshakov
a938f5a87a
refactor: handle DAP events in editor main loop
3 years ago
Dmitry Sharshakov
6458edecfd
Add stack pointer display when stopped
3 years ago
Gokul Soumya
f9375f449c
Refactor new Rect construction ( #575 )
...
* Refactor new Rect construction
Introduces methods that can be chained to construct new Rects
out of pre-existing ones
* Clamp x and y to edges in Rect chop methods
* Rename Rect clipping functions
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
557fd86e71
Extract view.inner_area(), simplify render_focused_view_elements
3 years ago
Blaž Hrastnik
9776553ad0
Refactor view.first_line/first_col into view.offset (Position)
3 years ago
Shafkath Shuhan
b63afbe74c
fix warnings
3 years ago
Kirawi
16bf8e1e6b
Document more of document.rs ( #562 )
3 years ago
Gokul Soumya
14c08e855f
Refactor infobox rendering and parsing ( #579 )
3 years ago
Grzegorz Baranski
78923496a6
feat: relative numbers ( #485 )
...
* feat(helix-view): configuring line-number
* feat(helix-term): relative line numbers
* feat(helix-term): passing editor::Config to render
* fix(helix-view): remove LineNumber::None
* feat(helix-term): rendering line-number according to configuration
* fix(term): put calculating current line above line iteration
* fix: add abs_diff function
* deps: cargo update
* fix: pass config argument
3 years ago
Gokul Soumya
d84f8b5fde
Show file preview in split pane in fuzzy finder ( #534 )
...
* Add preview pane for fuzzy finder
* Fix picker preview lag by caching
* Add picker preview for document symbols
* Cache picker preview per document instead of view
* Use line instead of range for preview doc
* Add picker preview for buffer picker
* Fix render bug and refactor picker
* Refactor picker preview rendering
* Split picker and preview and compose
The current selected item is cloned on every event, which is
undesirable
* Refactor out clones in previewed picker
* Retrieve doc from editor if possible in filepicker
* Disable syntax highlight for picker preview
Files already loaded in memory have syntax highlighting enabled
* Ignore directory symlinks in file picker
* Cleanup unnecessary pubs and derives
* Remove unnecessary highlight from file picker
* Reorganize buffer rendering
* Use normal picker for code actions
* Remove unnecessary generics and trait impls
* Remove prepare_for_render and make render mutable
* Skip picker preview if screen small, less padding
3 years ago
Dmitry Sharshakov
7d51805e94
Support primary clipboard ( #548 )
...
* clipboard-none: add in-memory fallback buffer
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* view: add Wayland primary clipboard
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Format
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: copy to primary selection after mouse move stops
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: don't update primary selection if it is a single character
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: discard result of setting primary selection
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: add commands for interaction with primary clipboard
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* editor: implement primary selection copy/paste using commands
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* clipboard: support xsel for primary selection
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* clipboard: support xclip for primary selection
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: multiple cursor support for middle click paste
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* rename primary selection to primary clipboard in scope of PR
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: make middle click paste optional
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Format
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Update helix-term/src/ui/editor.rs
* fix formatting
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* config: correct defaults if terminal prop is not set
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* refactor: merge clipboard and primary selection implementations
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Tidy up code
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* view: remove names for different clipboard/selection providers
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* Update helix-view/src/clipboard.rs
Co-authored-by: Gokul Soumya <gokulps15@gmail.com>
* helix-view: tidy macros
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: refactor paste-replace commands
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: use new config for middle-click-paste
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* clipboard: remove memory fallback for command and windows providers
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* clipboard-win: fix build
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* clipboard: return empty string when primary clipboard is missing
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* clipboard: fix errors in Windows build
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
Co-authored-by: Gokul Soumya <gokulps15@gmail.com>
3 years ago
Gokul Soumya
25a8a475c5
Refactor theme parsing ( #570 )
3 years ago
Blaž Hrastnik
6d52424303
fix: Adjust scroll offset/padding calculation to prevent wobble
...
Fixes #324
3 years ago
Dmitry Sharshakov
27b551d345
helix-term: handle scrolling when mouse is enabled ( #554 )
...
* helix-term: handle scrolling when mouse is enabled
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: configure scrolling speed
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: use new config for scrolling
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* config: defaults for edtior config
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* config: add scroll-lines property
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: scroll hovered view
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: support inverted scrolling
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: remove duplicating code
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: do not focus view while scrolled
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* helix-term: refactor mouse events and scrolling
Signed-off-by: Dmitry Sharshakov <d3dx12.xx@gmail.com>
* simplify
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
3 years ago
Kirawi
815ee9e334
fix small terminal size panic with info popup ( #563 )
...
* fix small terminal size panic with info popup
* remove unused enumerator
* fix subtraction overflow panic
3 years ago
Blaž Hrastnik
a2ccfffda1
config: Rename [terminal] to [editor] and pass it into Editor
3 years ago
Blaž Hrastnik
f0eb6ed96a
Resolve a couple TODOs
3 years ago
Ivan Tham
821565e4ef
Add ctrl-z to suspend
3 years ago
Blaž Hrastnik
557c63033c
fix: Map all selections on transaction.apply
3 years ago
Nathan Vegdahl
ccecda4f66
Add more unit tests for pos_at_screen_coords.
...
Specifically, test cases for double-width characters and grapheme
clusters.
3 years ago
Blaž Hrastnik
62eb8c6b40
mouse: Remove verify_screen_coords, refactor primary selection modification
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
Nathan Vegdahl
f88d4c1e20
Move indent-style code into `helix_core::indent`.
3 years ago
Nathan Vegdahl
e191a75e33
Give default document a single line ending.
3 years ago
Blaž Hrastnik
05d20e196f
Merge pull request #376 from cessen/great_line_ending_and_cursor_range_cleanup
...
The Great Line Ending & Cursor Range Cleanup
3 years ago
Gokul Soumya
8a2fa692f2
Refactor case where key event is solely a character
3 years ago
Nathan Vegdahl
cd7302ffd3
Enforce cursor/selection invariants in one place.
...
Rather than per-command like before.
3 years ago
Nathan Vegdahl
a873e719d5
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
3 years ago
Rust & Python
581a3d42c8
Update keyboard.rs ( #516 )
...
Fix doc comment typo
3 years ago
Nathan Vegdahl
f62ec6e51e
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
3 years ago
Nathan Vegdahl
5ee6ba5b38
Address some PR comments.
3 years ago
Gokul Soumya
88d6f65239
Allow multi key remappings in config file ( #454 )
...
* Use tree like structure to store keymaps
* Allow multi key keymaps in config file
* Allow multi key keymaps in insert mode
* Make keymap state self contained
* Add keymap! macro for ergonomic declaration
* Add descriptions for editor commands
* Allow keymap! to take multiple keys
* Restore infobox display
* Fix keymap merging and add infobox titles
* Fix and add tests for keymaps
* Clean up comments and apply suggestions
* Allow trailing commas in keymap!
* Remove mode suffixes from keymaps
* Preserve order of keys when showing infobox
* Make command descriptions smaller
* Strip infobox title prefix from items
* Strip infobox title prefix from items
3 years ago
Nathan Vegdahl
0883b4fae0
Collect some common patterns into methods on `Range`.
3 years ago
Nathan Vegdahl
43594049dd
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
3 years ago
Shafkath Shuhan
25103833b2
mark reloaded buffers as unchanged
3 years ago
Nathan Vegdahl
198fe40951
Don't insert a final line ending on file load/reload.
3 years ago
Nathan Vegdahl
c848ed7abc
Fixes for misc bugs with view movement.
3 years ago
Nathan Vegdahl
d5534a6d10
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
3 years ago
Ivan Tham
17f9dfce7e
Fix typo
3 years ago
Nathan Vegdahl
b0311f4fc2
Fixed primary cursor position calculation to use 1-width semantics.
...
This had a bunch of knock-on effects that were buggy, such as bracket
match highlighting.
3 years ago
Nathan Vegdahl
079d4ed86d
Properly fix `last_line` view calculation.
...
Turned out to be simpler than I thought. Didn't even need to change the
other use-sites.
3 years ago
Nathan Vegdahl
a77274e8bb
Merge branch 'master' into great_line_ending_and_cursor_range_cleanup
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
Kirawi
0b1ed8656d
Fix #442 ( #446 )
...
* fix #442
fix #442
fmt
* create Rope from default line ending
* Fix use of encoding in Document::open()
3 years ago
Blaž Hrastnik
d530d6e39d
Further simplify error handling in :commands
3 years ago