Commit Graph

62 Commits

Author SHA1 Message Date
Matan Kushner caaf3bc6a9
revert: Revert the command duration in ms feature () ()
Due to incompatibilities with the macOS date utility, we are
temporarily reverting this feature.

Refs: #c5e971a
2019-09-25 17:13:58 +09:00
Tom Hotston c5e971aef8 feat: Add ability for command duration in milliseconds () 2019-09-24 14:03:10 -05:00
Gimbar 702ad274cf feat: Add option to always show the username module () 2019-09-22 15:32:11 -05:00
Thomas O'Donnell 690300239b ci: Fix typo in Dockerfile () 2019-09-21 09:07:50 -05:00
Kevin Song c2875d99b6 feat: add support for logical paths in directory ()
Adds the ability for starship to display the logical path instead of the physical path.
2019-09-20 12:28:09 -04:00
Kuba Clark 71f03ec3e9 feat: Add Java Module ()
Implements a Java module which shows basic Java information when inside a Java project.
2019-09-19 18:02:53 -05:00
Kutsuzawa Ryo 7a98ec1d8e feat: Add configuration for the `git_status` prefix and suffix () 2019-09-15 16:44:53 -04:00
Thomas O'Donnell 653def05f0 Enable the python module for tox files ()
Enable the python module if the current directory contains a `tox.ini`
file.
2019-09-15 12:21:40 -04:00
Nick Young 7e891f17c1 perf: Lazy load files from directory ()
Changes context to use `once_cell` to lazily evaluate directory listing on first use.
2019-09-14 09:23:53 -05:00
John Letey f9a4514045 feat: Implement the prompt module for time ()
Add a module which displays the current time in a format requested by
the user. Disabled by default.
2019-09-10 12:54:40 -05:00
Neil Kistner 9f70ffb7a7 fix: Lazy load git repo and only run module if not disabled ()
A couple of optimizations are done in this PR. One, we now will check config ahead of time to see if a module is disabled before running any module code. Also, we won't try to discover a git repository unless the module requests access to it.
2019-09-09 19:14:38 -04:00
Neil Kistner 86c4a4bdcf refactor: Cleanup unwraps in create_fixture_repo function () 2019-09-07 12:27:29 -05:00
Neil Kistner 6658b7f0aa fix: Fixture repo will now clone and set git config locally () 2019-09-07 11:25:01 -05:00
Nick Young eb724279da feat: Adds Git State module for showing "REBASING 2/3", etc. ()
- Adds the git_state module.
- Adds git_state to the default prompt order
- Updates the documentation to describe the git_state module
2019-09-05 12:45:04 -04:00
Neil Kistner 1c66869117 feat: Add config for ahead/behind count of tracked branch ()
Add a configuration option (show_sync_count) to the git_status module that will show/hide the counts ahead/behind of the tracked branch. Currently have this default to false, and would opt-in to show this information.
2019-09-05 00:09:51 -04:00
Matan Kushner e66d7bae1c
ci: Migrate CI from Azure Pipelines to GitHub Actions ()
Migrated CI from Azure Pipelines to GitHub Actions.
Until the release process is figured out in Actions, we'll stick to using Azure pipelines for releases.
2019-09-04 19:13:53 -04:00
Andrew Houts 84688e4981 feat: add hostname module ()
Add a hostname module as requested by @chipbuster.
Displays the system hostname as provided by gethostname.
2019-09-04 13:03:31 -04:00
Neil Kistner dfade6d629 refactor: Move `create_fixture_repo` into common in integration tests () 2019-09-04 00:20:22 -04:00
Matan Kushner 470648000f test: Add an integration test for disabling untracked files 2019-09-02 20:27:04 -04:00
Titouan Vervack 59e8b1fc92 feat: added truncation_length/symbol to git_branch ()
Git branches can become very long (e.g. gitlab auto-generated branch
names), thus it would be nice to be able to truncate them to keep your
prompt lenght in line.

This patch adds two new options to the git_branch module:
* truncation_length: The amount of graphemes to of a gitbranch to
truncate to
* truncation_symbol: The symbol that should be used to indicate that a
branch name was trunctated

To be able to correctly work with UTF-8 graphemes, unicode-segmentation
was added as a dependency.
2019-09-02 15:56:59 -04:00
Quinn Strahl 3dd035056d Support vicmd_symbol in fish-shell () 2019-08-31 00:59:18 -07:00
Neil Kistner 9853743eda feat: Add commit count for ahead/behind symbols ()
Add logic for the git status module to display the number of commits the index is ahead or behind next to the symbol.
2019-08-27 20:11:42 -07:00
Neil Kistner e034253a5e feat: Add ability to use an alternate directory truncation style ()
* Add ability to use an alternate directory truncation style
2019-08-26 21:52:45 -04:00
Bruno Bigras feb737190e Add nix-shell support () 2019-08-25 11:41:20 -04:00
Thomas O'Donnell 1478f8c2e9 Add support for detecting Python from Pipenv files ()
Added the ability to enable the Python module based on the existence of the a `Pipfile`.
2019-08-21 15:54:22 -07:00
Kevin Song da86b4f847
fix: Failing Tests if home is a git directory () 2019-08-21 09:37:43 -07:00
Saurav Sharma 075a76897c fix: Change panicking on unknown module to error print and support module listing flag () 2019-08-20 00:42:25 -04:00
John Merchant 5af70b9699 fix: Fix directory_in_root integration test on Windows () 2019-08-18 11:55:45 -04:00
Kevin Song 85ac0a6801 fix: Set default prompt character to ❯ () 2019-08-18 11:34:45 -04:00
Shu Kutsuzawa d90c43b8b1 feat: Display Vi mode as PROMPT ()
Add Vi-mode indicator for zsh
2019-08-17 12:33:19 -07:00
Saghm Rossi 84c394e7b0 feat: Add option to control git directory truncation () 2019-08-16 20:29:22 -07:00
Bruno Bigras 7124e353db fix: Fix compilation on NixOS with sandboxing () 2019-08-16 15:01:09 -04:00
Kevin Song e250e71019 fix: Don't run tests for ruby outside of the integration tests () 2019-08-14 21:50:25 -04:00
Matan Kushner 717ee3339e
chore: Delete empty test file 2019-08-14 13:31:36 -04:00
André Zanellato b06249d61c feat: implement the ruby module () 2019-08-13 18:43:29 -04:00
Matan Kushner 7424e9674c
fix: Fix issues with nodejs and golang configuration ()
* fix: Give all modules a single name
* test: Add missing config tests for nodejs and golang
* test: Rename dir to directory
2019-08-13 12:30:59 -04:00
MaT1g3R 160a79fa06 feat: Implement configuration to display pyenv version name ()
This behavior can be enabled via setting `use_pyenv` to true.
The "pyenv" prefix before the version name can be configured using `pyenv_prefix`.
2019-08-12 21:12:55 -04:00
John Letey 82cf484ced feat: Implement the prompt module for jobs () 2019-08-12 13:42:33 -04:00
MaT1g3R 3669e389b6 feat: Implement Python virtual environment display () 2019-08-11 17:51:13 -04:00
Kevin Song 39598ec691 feat: Add configuration to change the character for non-zero sta… ()
Prompt can now switch characters in addition to switching character color. Add configuration options in so that users can do either, both, or neither.
2019-08-10 17:30:30 -04:00
Kevin Song 3daf3ddf26 feat: implement timer module ()
Implement a timer module that takes a commandline argument, the number of seconds the last job took to complete, and displays it if appropriate.

Alters shell initialization files to compute this number using date +%s where needed.

Adds a config section to configure minimum amount of time before timer is shown (default is 2s)
2019-08-08 13:25:30 -04:00
Andrew Dassonville 5dbf4381ac feat: Allow directory truncation length to be configured ()
This allows the directory truncation length to be configured. Previously, it was hard-coded to truncate to 3 parent directories.
2019-07-28 21:05:13 -04:00
Matan Kushner 0bc28c521d
feat: Add configuration for add_newline ()
- Replace TableExt with a Config trait that extends toml::value::Table
Add configuration for add_newline
- add_newline is a root-level configuration value. When set to false, the initial newline before the prompt is removed.
2019-07-27 18:25:13 -04:00
Tiffany Le-Nguyen 08cf33522a docs: Add vuepress with initial docs ()
Co-authored-by: Tiffany Le-Nguyen <tlenguyen@expedia.com>
Co-authored-by: Matan Kushner <hello@matchai.me>
2019-07-19 16:18:52 -04:00
Matan Kushner 025c0e5e85
ci: Use Python v3.6.9 in CI () 2019-07-19 15:56:36 -04:00
Matan Kushner 463ec26024
feat: Add a `disabled` configuration option for modules ()
• Add support for the disabled configuration option
This will allow you to selectively disable modules that you don't want or need. 😄
• Overwrite starship configuration file path with STARSHIP_CONFIG environment variable
• Write tests for the two configuration options that are available
2019-07-02 16:12:53 -04:00
Matan Kushner 097f1b05f1
Add support for prompt configuration ()
- Create `Config` struct that is added to `Context` when initialized
- Read `~/.confg/starship.toml` during initialization (can be updated later to also look at `$XDG_CONFIG_HOME`)
- `Context` now has a method for creating modules. This allows us to provide modules with a reference to the configuration specific to that module
2019-06-10 15:56:17 +01:00
Matan Kushner 8239fbd12b
Refactor integration tests ()
- Create subcommands to be able to print modules independently
	- `starship prompt` will print the full prompt
	- `starship module <MODULE_NAME>` will print a specific module
		e.g. `starship module python`
	- Added `--path` flag to print the prompt or modules without being in a specific directory
	- Added `--status` flag to provide the status of the last command, instead of requiring it as an argument
- Refactored integration tests to be end-to-end tests, since there was no way in integration tests to set the environment variables for a specific command, which was required for the `username` module
- Moved e2e tests to `tests/testsuite` to allow for a single binary to be built
	- Tests will build/run faster
	- No more false positives for unused functions
- Added tests for `username`
- Removed codecov + tarpaulin 😢
2019-06-06 13:18:00 +01:00
Matan Kushner 000abfe6df
Use tarpaulin and Codecov for adding code coverage to project () 2019-05-29 22:58:46 +02:00
Youssef Habri 08b238114e feat: Implement the prompt module for username () 2019-05-19 22:26:12 -04:00