summaryrefslogtreecommitdiff
path: root/helix-loader/src
Commit message (Collapse)AuthorAge
* properly handle detachted git worktrees (#5097)Pascal Kuthe2022-12-11
|
* feat(lsp): pass client_info on initialization (#4904)Matouš Dzivjak2022-12-09
| | | | Pass client name ('helix') and client version (version / git hash) to LSP server on initialization.
* Resolve a bunch of upcoming clippy lintsBlaž Hrastnik2022-11-04
|
* grammar: Don't require lower-case (#4346)Christian Speich2022-10-21
| | | | | | | | | | Currently we always lower-case the grammar name when loading it. While it is somewhat of an convention to name tree-sitter grammars in lowercase there is no rule to enforce it. This patch removes the lower-casing to allow all possible grammar names. Signed-off-by: Christian Speich <cspeich@emlix.com>
* Split helix_core::find_root and helix_loader::find_local_config_dirs (#3929)Riccardo Binetti2022-09-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Split helix_core::find_root and helix_loader::find_local_config_dirs The documentation of find_root described the following priority for detecting a project root: - Top-most folder containing a root marker in current git repository - Git repository root if no marker detected - Top-most folder containing a root marker if not git repository detected - Current working directory as fallback The commit contained in https://github.com/helix-editor/helix/pull/1249 extracted and changed the implementation of find_root in find_root_impl, actually reversing its result order (since that is the order that made sense for the local configuration merge, from innermost to outermost ancestors). Since the two uses of find_root_impl have different requirements (and it's not a matter of reversing the order of results since, e.g., the top repository dir should be used by find_root only if there's not marker in other dirs), this PR splits the two implementations in two different specialized functions. In doing so, find_root_impl is removed and the implementation is moved back in find_root, moving it closer to the documented behaviour thus making it easier to verify it's actually correct * helix-core: remove Option from find_root return type It always returns some result, so Option is not needed
* Canonicalize executable pathBen Noordhuis2022-09-13
| | | | | | | When looking up the runtime/ directory relative to the executable path, canonicalize the path first in case the executable is a symbolic link. Fixes #3768
* ordinals instead of indexes when listing grammar fetch errors (#3773)Evan Richter2022-09-10
|
* feat: shorten output for grammar fetching and building (#3396)Poliorcetics2022-08-17
| | | | | | | | | | | | | | | | | | | | New look: ``` Fetching 102 grammars 98 up to date git grammars 4 updated grammars bash now on 275effdfc0edce774acf7d481f9ea195c6c403cd beancount now on 4cbd1f09cd07c1f1fabf867c2cf354f9da53cc4c c now on f05e279aedde06a25801c3f2b2cc8ac17fac52ae c-sharp now on 53a65a908167d6556e1fcdb67f1ee62aac101dda ``` ``` Building 102 grammars 100 grammars already built 2 grammars built now ["bash", "rust"] ```
* add a CLI flag for specifying config file location (#2666)Michael Davis2022-08-04
|
* feat: support grammar cross-compilationyvt2022-08-02
|
* fix(loader): pass `cc::Tool::args()`yvt2022-08-02
| | | | | Certain targets, such as `aarch64-apple-*`, require additional compiler flags to cross-compile for the intended target.
* Refactor 'helix-loader::merge_toml_values' to use a 'merge-depth' instead of ↵Philipp Mildenberger2022-07-26
| | | | | | 'merge_toplevel_arrays' (#3080) - This ensures that other values than just the arrays are overridden, like nested objects, where it makes sense - merge_depth is set to 3 so that top-level language features are merged (like 'scope'), but everything deeper is overridden with the user-config
* Fix non-msvc grammar compile on Windows (#3190)bootra2022-07-26
|
* Fix initial selection of Document in new viewSkyler Hawthorne2022-06-19
| | | | | | | | | | | When a new View of a Document is created, a default cursor of 0, 0 is created, and it does not get normalized to a single width cursor until at least one movement of the cursor happens. This appears to have no practical negative effect that I could find, but it makes tests difficult to work with, since the initial selection is not what you expect it to be. This changes the initial selection of a new View to be the width of the first grapheme in the text.
* improve test harnessSkyler Hawthorne2022-06-19
| | | | | | | * Use new macro syntax for encoding sequences of keys * Make convenience helpers for common test pattern * Use indoc for inline indented raw strings * Add feature flag for integration testing to disable rendering
* Use a minimal binary to fetch grammar sources in release CI (#2557)Michael Davis2022-06-05
| | | | | | | | | | | | This is an optimization for the release CI. The release CI can take a while since it compiles release builds for all operating systems. We cut down on duplicate work and overall time by fetching tree-sitter grammar repositories and then using those repositories in all later steps. Previously we built all of helix just to run helix_loader::grammar::fetch_grammars() which is wasteful on time. With this change we only build the helix-loader crate.
* Ignore SendErrors when handling grammars (#2641)Frojdholm2022-06-02
| | | | | | | When handling grammars, fetching and building is done in a thread pool. Results are communicated over channels and the receiving channel is closed on first error. This causes subsequent sends to fail causing a mess in stderr. This ignores all SendErrors causing only the first error to be printed.
* illumos linker doesn't currently have -z relro (#2602)Michael Zeller2022-05-29
|
* mention the C++ compiler in the grammar build failure message (#2597)Michael Davis2022-05-29
| | | | | | | Earlier in the builder we enable C++ (`.cpp(true)`) but only mention the C compiler in the build failure message. Some grammars that have C++ external scanners can provoke build failures in this step if a C++ compiler isn't installed, so mentioning it in the error message should help out debugging.
* helix-loader + helix-core now compile for WASMBlaž Hrastnik2022-05-01
|
* Only merge top-level array when merging `languages.toml` (#2215)Michael Davis2022-04-23
| | | | | | | * Revert "Revert "override nested arrays when merging TOML (#2145)"" This reverts commit 35d2693630a4ec29a654704bc4be47badb8d6070. * flip top-level table merging flag
* Revert "override nested arrays when merging TOML (#2145)"Blaž Hrastnik2022-04-20
| | | | | | Looks like there's some follow-up issues This reverts commit c8cfd0b1a0da071618a9efc71ac5735d6147a0ca.
* override nested arrays when merging TOML (#2145)Michael Davis2022-04-20
| | | | | | | | We merge the elements of arrays for the top-level array. For `languages.toml`, this is the array of languages. For any nested arrays, we simply take the `right` array as-is instead of using the union of `left` and `right`. closes #1000
* Fixing (in two ways) a small typo (#2156)Ben Lee-Cohen2022-04-18
|
* Add support for local language configuration (#1249)Kirawi2022-04-18
| | | | | | | * add local configuration * move config loading to Application::new * simplify find_root_impl
* remove hardcoded '/' from grammar source path (#1986)Michael Davis2022-04-06
|
* Avoid using the format ident Rust feature (#1881)Marcin Puc2022-03-30
|
* fix enum definition for use-grammars selections (#1818)Michael Davis2022-03-16
| | | | | | See https://github.com/helix-editor/helix/discussions/1817 It looks like we need the enums to have the `only`/`except` fields in order to deserialize correctly.
* remove stray 'println!' from grammar building function (#1785)Michael Davis2022-03-11
|
* rename '--fetch/build-grammars' flags into '--grammar fetch/build'Michael Davis2022-03-10
| | | | | The old flags were a bit long. --grammar is also aliased to -g to make it even easier.
* only fetch git-sourced grammarsMichael Davis2022-03-10
| | | | | | This is a bit of a micro-optimization: in the current setup we waste a thread in the pool for a local grammar only to println! a message saying we're skipping fetching because it's a local grammar.
* shallow cloneSkyler Hawthorne2022-03-10
|
* fix context in errorSkyler Hawthorne2022-03-10
|
* migrate grammar fetching/building code into helix-loader crateMichael Davis2022-03-10
This is a rather large refactor that moves most of the code for loading, fetching, and building grammars into a new helix-loader module. This works well with the [[grammars]] syntax for languages.toml defined earlier: we only have to depend on the types for GrammarConfiguration in helix-loader and can leave all the [[language]] entries for helix-core.