aboutsummaryrefslogtreecommitdiff
path: root/book/src
Commit message (Collapse)AuthorAge
...
* Adds support for multiple language servers per language.Philipp Mildenberger2023-05-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Language Servers are now configured in a separate table in `languages.toml`: ```toml [langauge-server.mylang-lsp] command = "mylang-lsp" args = ["--stdio"] config = { provideFormatter = true } [language-server.efm-lsp-prettier] command = "efm-langserver" [language-server.efm-lsp-prettier.config] documentFormatting = true languages = { typescript = [ { formatCommand ="prettier --stdin-filepath ${INPUT}", formatStdin = true } ] } ``` The language server for a language is configured like this (`typescript-language-server` is configured by default): ```toml [[language]] name = "typescript" language-servers = [ { name = "efm-lsp-prettier", only-features = [ "format" ] }, "typescript-language-server" ] ``` or equivalent: ```toml [[language]] name = "typescript" language-servers = [ { name = "typescript-language-server", except-features = [ "format" ] }, "efm-lsp-prettier" ] ``` Each requested LSP feature is priorized in the order of the `language-servers` array. For example the first `goto-definition` supported language server (in this case `typescript-language-server`) will be taken for the relevant LSP request (command `goto_definition`). If no `except-features` or `only-features` is given all features for the language server are enabled, as long as the language server supports these. If it doesn't the next language server which supports the feature is tried. The list of supported features are: - `format` - `goto-definition` - `goto-declaration` - `goto-type-definition` - `goto-reference` - `goto-implementation` - `signature-help` - `hover` - `document-highlight` - `completion` - `code-action` - `workspace-command` - `document-symbols` - `workspace-symbols` - `diagnostics` - `rename-symbol` - `inlay-hints` Another side-effect/difference that comes with this PR, is that only one language server instance is started if different languages use the same language server.
* Add wbc and wbc! commands (#6947)Kitsu2023-05-09
|
* Remove `tree-sitter-cabal` (#6996)Ollie Charles2023-05-09
|
* Add Flathub as third party repository (#6994)David Else2023-05-09
|
* Fix keymap select / extend mode anchor link (#6974)Dave Powers2023-05-05
|
* Add language server command for Crystal (#6948)taupiqueur2023-05-03
|
* Update docs for `move_visual_line_*` (#6918)sscheele2023-04-30
|
* inject language based on file extension & shebang (#3970)Timothy DeHerrera2023-04-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * inject language based on file extension Nodes can now be captured with "injection.filename". If this capture contains a valid file extension known to Helix, then the content will be highlighted as that language. * inject language by shebang Nodes can now be captured with "injection.shebang". If this capture contains a valid shebang line known to Helix, then the content will be highlighted as the language the shebang calls for. * add documentation for language injection * nix: fix highlights The `@` is now highlighted properly on either side of the function arg. Also, extending the phases with `buildPhase = prev.buildPhase + ''''` is now highlighted properly. Fix highlighting of `''$` style escapes (requires tree-sitter-nix bump) Fix `inherit` highlighting. * simplify injection_for_match Split out injection pair logic into its own method to make the overall flow easier to follow. Also transform the top-level function into a method on a HighlightConfiguration. * markdown: add shebang injection query
* feat(commands): add clear-register typable command (#5695)jorge2023-04-27
| | | Co-authored-by: Jorge <chorcheus@tutanota.com>
* Change Odin grammar to `ap29600/tree-sitter-odin` (#6766)ap296002023-04-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | * Change Odin grammar to `ap29600/tree-sitter-odin` The previously adopted grammar, `MineBill/tree-sitter-odin`, is unmaintained and mentions my repository as an alternative source. * update queries * docgen * fix queries * Update runtime/queries/odin/highlights.scm Co-authored-by: Michael Davis <mcarsondavis@gmail.com> * remove `ERROR` query for `odin` * track the latest rev in `ap29600/tree-sitter-odin` * runtime/queries/odin/highlights.scm: update rune highlight class Co-authored-by: Michael Davis <mcarsondavis@gmail.com> --------- Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
* feat: add a config option to exclude declaration from LSP references (#6886)Vitalii Solodilov2023-04-27
| | | | | | | | | * feat: added the config option to exclude declaration from reference query Fixes: #5344 * fix: review * fix: review
* Set PerlNavigator as the language server for Perl (#6860)Wesley2023-04-26
|
* make `:u` alias `:update` (#6835)Atticus Sebastiani2023-04-23
| | | | | | | * Gave the command update the alias u * Re added trailing newline * generated docs
* Change soft-wrap.wrap_at_text_width to kebab case in documentation (#6842)Michael T. Mordowanec2023-04-21
| | | Solves #6803.
* Improve and update the installation documentation (#6809)David Else2023-04-19
|
* Add standalone language support for `just` (#6453)VuiMuich2023-04-14
| | | | Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
* Add DTD language support (#6644)Michael2023-04-12
| | | | - Added syntax highlighting for the DTD subset of the XML spec. - Included .dtd and .ent as common file extensions
* Add OpenCL tree-sitter and LSP config (#6473)lefp2023-04-12
|
* feat(languages): Support markdoc (#6432)Matouš Dzivjak2023-04-12
| | | | | | Add basic support for [markdoc](https://markdoc.dev/). For language server, see: https://github.com/markdoc-extra/markdoc-ls For tree sitter, see: https://github.com/markdoc-extra/tree-sitter-markdoc
* Initial Cabal language support (#6485)Ollie Charles2023-04-12
|
* Fix `file-picker.follow-symlinks` config option name in docs (#6685)tippfehlr2023-04-10
|
* Add Windows install instructions using Winget (#6602)Nico Bos2023-04-09
|
* Fix minor grammar issue in 'from-vim' docs (#6667)Alireza Alavi2023-04-09
|
* Add support for Robot Framework files (#6611)karei2023-04-07
| | | | | * Add support for Robot Framework files * Run docgen
* Add textobject queries for Julia (#6588)Clara Hobbs2023-04-06
| | | | | * Add textobjects queries for Julia * Update docs for Julia textobject queries
* Add Hurl Support (#6450)Erasin Wang2023-04-06
| | | | | | | | | * Add http Support It's like [vscode-restclient](https://github.com/Huachao/vscode-restclient) - https://github.com/erasin/tree-sitter-http/tree/main/tests * Add Hurl Support
* add option to enable/disable lsp snippetsPascal Kuthe2023-03-31
|
* Add indents.scm for Julia (#6490)Clara Hobbs2023-03-31
| | | | | * Add indents.scm for Julia * Update documentation for new indent support
* implement proper lsp-workspace supportPascal Kuthe2023-03-29
| | | | | | fix typo Co-authored-by: LeoniePhiline <22329650+LeoniePhiline@users.noreply.github.com>
* add workspace config and manual LSP root managementPascal Kuthe2023-03-29
| | | | | | | | | | fixup documentation Co-authored-by: LeoniePhiline <22329650+LeoniePhiline@users.noreply.github.com> fixup typo Co-authored-by: LeoniePhiline <22329650+LeoniePhiline@users.noreply.github.com>
* feat(debug): highlight current line (#5957)Filip Dutescu2023-03-29
| | | | | | | | | | | | | | | | | | Add new theme highlight keys, for setting the colour of the breakpoint character and the current line at which execution has been paused at. The two new keys are `ui.highlight.frameline` and `ui.debug.breakpoint`. Highlight according to those keys, both the line at which debugging is paused at and the breakpoint indicator. Add an indicator for the current line at which execution is paused at, themed by the `ui.debug.active` theme scope. Update various themes to showcase how the new functionality works. Better icons are dependent on #2869, and as such will be handled in the future, once it lands. Closes: #5952 Signed-off-by: Filip Dutescu <filip.dutescu@gmail.com>
* Update tree-sitter-git-commit, add comment textobject (#6439)Michael Davis2023-03-27
| | | | | | | The update includes a fix for comments in commit messages where there was no space separating the '#' and the comment text. The comment textobject can be useful occasionally to jump to the summary part of the commit edit message.
* Initial Nim language support (#6123)JJ2023-03-26
|
* Add language support for rego (OpenPolicyAgent) (#6415)Juan C. Müller2023-03-26
|
* Add vhdl language support (#5826)Tom Burdick2023-03-25
| | | | | | | Simple highlight query file with keywords and builtin types matching. Many VHDL types however are defined in std libraries which do not currently get matched on. This is because the grammar doesn't consider them builtin types.
* Add theme keys for (un)checked markup list items (#6434)Erasin Wang2023-03-25
|
* Fix spelling of diagnostics (#6418)Juan C. Müller2023-03-24
|
* Add initial Smithy support (#6370)zetashift2023-03-21
|
* Add instructions for installing via AppImage (#6368)Gautam Panchal2023-03-20
|
* Document `ui.highlight` theme key (#6372)Aaron Bull Schaefer2023-03-20
| | | This scope was added via https://github.com/helix-editor/helix/commit/bf5b9a9f354135933d7970863cf81e5a36585d03
* Add language support for Cap’n Proto format (#6325)angelodlfrtr2023-03-18
|
* Improve tree-sitter queries for vlang (#6279)Erasin Wang2023-03-15
| | | | | | - Update hightlight - add indents - add textobject - add injections
* Add undercurl config option #6196 (#6253)Jonatan Pettersson2023-03-14
| | | If set to 'true' this option will force terminal undercurl support.
* Theme onelight add inlay-hint (#6276)Erasin Wang2023-03-12
| | | | | | - fix: add `markup.strikethrough` for theme.md - add virtual.inlay-hint - fix ui.virtual.wrap - rename light-white to grey-300
* Feat: LSP Type Hints (#5934)Poliorcetics2023-03-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * misc: missing inline, outdated link * doc: Add new theme keys and config option to book * fix: don't panic in Tree::try_get(view_id) Necessary for later, where we could be receiving an LSP response for a closed window, in which case we don't want to crash while checking for its existence * fix: reset idle timer on all mouse events * refacto: Introduce Overlay::new and InlineAnnotation::new * refacto: extract make_job_callback from Context::callback * feat: add LSP display_inlay_hint option to config * feat: communicate inlay hints support capabilities of helix to LSP server * feat: Add function to request range of inlay hint from LSP * feat: Save inlay hints in document, per view * feat: Update inlay hints on document changes * feat: Compute inlay hints on idle timeout * nit: Add todo's about inlay hints for later * fix: compute text annotations for current view in view.rs, not document.rs * doc: Improve Document::text_annotations() description * nit: getters don't use 'get_' in front * fix: Drop inlay hints annotations on config refresh if necessary * fix: padding theming for LSP inlay hints * fix: tracking of outdated inlay hints should not be dependant on document revision (because of undos and such) * fix: follow LSP spec and don't highlight padding as virtual text * config: add some LSP inlay hint configs
* Add a version-control statusline element (#5682)Dimitar Gyurov2023-03-10
|
* Improved yuck highlighting (and parser), and introduced a tag.builtin scope ↵Philipp Mildenberger2023-03-10
| | | | (#6242)
* treat replace/insertmode consistently, default to insertPascal Kuthe2023-03-10
|
* Generalised to multiple runtime directories with priorities (#5411)paul-scott2023-03-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Generalised to multiple runtime directories with priorities This is an implementation for #3346. Previously, one of the following runtime directories were used: 1. `$HELIX_RUNTIME` 2. sibling directory to `$CARGO_MANIFEST_DIR` 3. subdirectory of user config directory 4. subdirectory of path to helix executable The first directory provided / found to exist in this order was used as a root for all runtime file searches (grammars, themes, queries). This change lowers the priority of `$HELIX_RUNTIME` so that the user config runtime has higher priority. More significantly, all of these directories are now searched for runtime files, enabling a user to override default or system-level runtime files. If the same file name appears in multiple runtime directories, the following priority is now used: 1. sibling directory to `$CARGO_MANIFEST_DIR` 2. subdirectory of user config directory 3. `$HELIX_RUNTIME` 4. subdirectory of path to helix executable One exception to this rule is that a user can have a `themes` directory directly in the user config directory that has higher piority to `themes` directories in runtime directories. That behaviour has been preserved. As part of implementing this feature `theme::Loader` was simplified and the cycle detection logic of the theme inheritance was improved to cover more cases and to be more explicit. * Removed AsRef usage to avoid binary growth * Health displaying ;-separated runtime dirs * Changed HELIX_RUNTIME build from src instructions * Updated doc for more detail on runtime directories * Improved health symlink printing and theme cycle errors The health display of runtime symlinks now prints both ends of the link. Separate errors are given when theme file is not found and when the only theme file found would form an inheritence cycle. * Satisfied clippy on passing Path * Clarified highest priority runtime directory purpose * Further clarified multiple runtime details in book Also gave markdown headings to subsections. Fixed a error with table indentation not building table that also appears present on master. --------- Co-authored-by: Paul Scott <paul.scott@anu.edu.au> Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* Softwrapping improvements (#5893)Clément Delafargue2023-03-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * use max_line_width + 1 during softwrap to account for newline char Helix softwrap implementation always wraps lines so that the newline character doesn't get cut off so he line wraps one chars earlier then in other editors. This is necessary, because newline chars are always selecatble in helix and must never be hidden. However That means that `max_line_width` currently wraps one char earlier than expected. The typical definition of line width does not include the newline character and other helix commands like `:reflow` also don't count the newline character here. This commit makes softwrap use `max_line_width + 1` instead of `max_line_width` to correct the impedance missmatch. * fix typos Co-authored-by: Jonathan Lebon <jonathan@jlebon.com> * Add text-width to config.toml * text-width: update setting documentation * rename leftover config item * remove leftover max-line-length occurrences * Make `text-width` optional in editor config When it was only used for `:reflow` it made sense to have a default value set to `80`, but now that soft-wrapping uses this setting, keeping a default set to `80` would make soft-wrapping behave more aggressively. * Allow softwrapping to ignore `text-width` Softwrapping wraps by default to the viewport width or a configured `text-width` (whichever's smaller). In some cases we only want to set `text-width` to use for hard-wrapping and let longer lines flow if they have enough space. This setting allows that. * Revert "Make `text-width` optional in editor config" This reverts commit b247d526d69adf41434b6fd9c4983369c785aa22. * soft-wrap: allow per-language overrides * Update book/src/configuration.md Co-authored-by: Pascal Kuthe <pascal.kuthe@semimod.de> * Update book/src/languages.md Co-authored-by: Pascal Kuthe <pascal.kuthe@semimod.de> * Update book/src/configuration.md Co-authored-by: Pascal Kuthe <pascal.kuthe@semimod.de> --------- Co-authored-by: Pascal Kuthe <pascal.kuthe@semimod.de> Co-authored-by: Jonathan Lebon <jonathan@jlebon.com> Co-authored-by: Alex Boehm <alexb@ozrunways.com> Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>