summaryrefslogtreecommitdiff
path: root/helix-term/src/main.rs
Commit message (Collapse)AuthorAge
* Add glob file type support (#8006)Galen Abell2024-02-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Replace FileType::Suffix with FileType::Glob Suffix is rather limited and cannot be used to match files which have semantic meaning based on location + file type (for example, Github Action workflow files). This patch adds support for a Glob FileType to replace Suffix, which encompasses the existing behavior & adds additional file matching functionality. Globs are standard Unix-style path globs, which are matched against the absolute path of the file. If the configured glob for a language is a relative glob (that is, it isn't an absolute path or already starts with a glob pattern), a glob pattern will be prepended to allow matching relative paths from any directory. The order of file type matching is also updated to first match on globs and then on extension. This is necessary as most cases where glob-matching is useful will have already been matched by an extension if glob matching is done last. * Convert file-types suffixes to globs * Use globs for filename matching Trying to match the file-type raw strings against both filename and extension leads to files with the same name as the extension having the incorrect syntax. * Match dockerfiles with suffixes It's common practice to add a suffix to dockerfiles based on their context, e.g. `Dockerfile.dev`, `Dockerfile.prod`, etc. * Make env filetype matching more generic Match on `.env` or any `.env.*` files. * Update docs * Use GlobSet to match all file type globs at once * Update todo.txt glob patterns * Consolidate language Configuration and Loader creation This is a refactor that improves the error handling for creating the `helix_core::syntax::Loader` from the default and user language configuration. * Fix integration tests * Add additional starlark file-type glob --------- Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
* Create helix-stdx crate for stdlib extensionsMichael Davis2024-01-18
| | | | | | | | | | | | | helix-stdx is meant to carry extensions to the stdlib or low-level dependencies that are useful in all other crates. This commit starts with all of the path functions from helix-core and the CWD tracking that lived in helix-loader. The CWD tracking in helix-loader was previously unable to call the canonicalization functions in helix-core. Switching to our custom canonicalization code should make no noticeable difference though since `std::env::current_dir` returns a canonicalized path with symlinks resolved (at least on unix).
* Resolve args.files before changing directory (#8676)Bjorn Ove Hay Andersen2023-11-21
| | | | | | | | | | | * Resolve args.files before changing directory * Removed the open_cwd work-around now that the path is full * If -w is specified, use that as the working directory * Open the remaining files in the argument list, also when the first is a directory * Use an iterator access the files argument
* Fixed issue when the first file specified as an argument was a relative ↵Bjorn Ove Hay Andersen2023-10-18
| | | | directory (#8520)
* Add +N CLI argument to jump to first file's line number (#8521)Bjorn Ove Hay Andersen2023-10-12
| | | | | | | | | | | * Accept +num flag for opening at line number * Update +N argument feature according to feedback in original PR #5603 * Only override the line number of the first file if +N is specified --------- Co-authored-by: Nachum Barcohen <38861757+nabaco@users.noreply.github.com>
* Set the working directory before loading the config (#8498)Bjorn Ove Hay Andersen2023-10-09
|
* enable starting hx with a working directory (#8223)Lloyd Bond2023-10-03
| | | | | | | | | | | | | | | | | * added working path arg to cli and help menu * improve working path cli arg handling * enable hx to set the working path * applied cargo formatting * improved code from cargo clippy suggestion * improved code from follow up review * fix for -w <path> is set but args.files is empty * improved formatting of --help output
* Initialize log and config files right after parsing arguments (#7585)Alex Vinyals2023-07-09
|
* Fix `:log-open` when `--log` is specified (#7573)Alex Vinyals2023-07-09
|
* fix: add file argument in help text (#7307)0xHiro / ヒロ2023-06-10
|
* 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(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.
* document should save even if formatter failsSkyler Hawthorne2022-10-19
|
* Add command line parameter to specify log file (#3807)Tobias Hunger2022-09-20
| | | | | | | | | | | * Add command line parameter to specify log file I had the logs of my debug helix mixed in with the logs from the production helix. Add a `--log` command line argument to redirect any logs to other files, making my debugging easier :-) * Update completion files with `--log` argument
* Show clipboard info in --health output (#2947)Gokul Soumya2022-08-31
| | | | | | | * Show clipboard info in --health output * health: Separate 'languages' category from 'all' Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
* add a CLI flag for specifying config file location (#2666)Michael Davis2022-08-04
|
* feat: support grammar cross-compilationyvt2022-08-02
|
* adds --vsplit and --hsplit arguments (#2773)plexom2022-07-01
| | | | | | | | | * adds --vsplit and --hsplit arguments * moved comment * fixed lint (third time's a charm) * changed vsplit and hsplit from two separate bools to type Option<Layout>, and some cleanup
* use main application event loopSkyler Hawthorne2022-06-19
| | | | Use the Application's main event loop to allow LSP, file writes, etc
* move config parsing back into mainSkyler Hawthorne2022-06-19
|
* Add support for local language configuration (#1249)Kirawi2022-04-18
| | | | | | | * add local configuration * move config loading to Application::new * simplify find_root_impl
* Handle BrokenPipe when piping hx --health through head (#1876)Nirmal Patel2022-03-30
| | | Co-authored-by: Gokul Soumya <gokulps15@gmail.com>
* Add refresh-config and open-config command (#1803)Joe2022-03-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add refresh-config and open-config command * clippy * Use dynamic dispatch for editor config * Refactor Result::Ok to Ok * Remove unused import * cargo fmt * Modify config error handling * cargo xtask docgen * impl display for ConfigLoadError * cargo fmt * Put keymaps behind dyn access, refactor config.load() * Update command names * Update helix-term/src/application.rs Co-authored-by: Blaž Hrastnik <blaz@mxxn.io> * Switch to unbounded_channel * Remove --edit-config command * Update configuration docs * Revert "Put keymaps behind dyn access", too hard This reverts commit 06bad8cf492b9331d0a2d1e9242f3ad4e2c1cf79. * Add refresh for keys * Refactor default_keymaps, fix config default, add test * swap -> store, remove unneeded clone * cargo fmt * Rename default_keymaps to default Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* fix '--grammar' flag in help text (#1784)Michael Davis2022-03-10
|
* 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.
* 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.
* implement build_grammars and fetch_grammarsMichael Davis2022-03-10
| | | | | | | | build_grammars adapts the functionality that previously came from helix-syntax to be used at runtime from the command line flags. fetch_grammars wraps command-line git to perform the same actions previously done in the scripts in #1560.
* add --fetch-grammars and --build-grammars CLI flagsMichael Davis2022-03-10
|
* Add --edit-config flag to directly open config.toml (#1771)Joe2022-03-09
| | | Co-authored-by: Gokul Soumya <gokulps15@gmail.com>
* Add --health command for troubleshooting (#1669)Gokul Soumya2022-03-08
| | | | | | | | | | | | | | | * Move runtime file location definitions to core * Add basic --health command * Add language specific --health * Show summary for all langs with bare --health * Use TsFeature from xtask for --health * cargo fmt Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
* Allow specifying file start position (#445)Ivan Tham2022-01-23
| | | Like helix-term/src/commands.rs:3426:15
* revert log truncation (#895) (#1130)Kirawi2021-11-19
|
* helix-term/commands: implement cquit (#1096)Cole Helbling2021-11-15
| | | This allows you to exit helix with an exit code, e.g. `:cq 2`.
* Add commit hash to version info, if present (#957)Gygaxis Vainhardt2021-11-14
| | | | | | | | | | | * Add commit hash to version info, if present * Rename GIT_HASH to indicate that it includes version, fix linter error * Add whitespace after use statement Co-authored-by: Ivan Tham <pickfire@riseup.net> Co-authored-by: Ivan Tham <pickfire@riseup.net>
* Launch with defaults upon invalid config/theme (#982)Omnikar2021-11-06
| | | | | | | | * 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
* Add `--tutor` option to `hx --help` output (#924)Omnikar2021-10-28
| | | | | * Add `--tutor` option to `hx --help` output * Adjust `--tutor` location in help output
* log syntax highlighting init errors (#895)Kirawi2021-10-23
|
* Fix previous broken refactor key into helix-viewIvan Tham2021-06-24
| | | | | | | | Need to be used for autoinfo Revert "Revert "Refactor key into helix-view"" This reverts commit 10f9f72232f5789323d689bf0f9cd359715770d6.
* minor: Remove old TODOsBlaž Hrastnik2021-06-22
|
* Revert "Refactor key into helix-view"Blaž Hrastnik2021-06-19
| | | | | | Did not use defaults when custom keymap was used This reverts commit ca806d4f852e934651132fc9570a6110e30f646d.
* Refactor key into helix-viewIvan Tham2021-06-19
| | | | Now also make use of Deserialize for Config.
* Configurable keys 2 (Mapping keys to commands) (#268)PabloMansanet2021-06-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* Create all parent directories for config and cacheWojciech Kępka2021-06-07
|
* Separate helix-term as a libraryIvan Tham2021-06-07
| | | | helix-term stuff will now be documented in rustdoc.
* Install instructions and version number corrections (#148)Ethan Bodzioney2021-06-07
| | | | | | | | | | | | | | | | | | | * Add MacOS install instructions * Change version name argument When using the -V command to get the version you are given 'helix-term x.x.x', I changed this to just helix as it makes more sense. * Fixed version number * Fixed version number * Fixed version number * Fixed version number * Fixed version number * Fixed version number
* Try to detect language when document file path is setBlaž Hrastnik2021-06-04
| | | | Fixes #91
* Default log file to cacheIvan Tham2021-06-03
|
* Refactored parse_args loopCorey Powell2021-06-02
| | | | Thanks @PabloMansanet
* Dropped pico-args in favour of a simpler hand roller parserCorey Powell2021-06-02
| | | | Not the greatest looking, but it gets the job done
* Fix panic opening rust fileIvan Tham2021-06-02
| | | | Application::new will use stuff that requires tokio runtime.