Commit Graph

106 Commits

Author SHA1 Message Date
Kutsuzawa Ryo 7a98ec1d8e feat: Add configuration for the `git_status` prefix and suffix (#367) 2019-09-15 16:44:53 -04:00
Thomas O'Donnell 653def05f0 Enable the python module for tox files (#369)
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 (#335)
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 (#138)
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 (#306)
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 (#311) 2019-09-07 12:27:29 -05:00
Neil Kistner 6658b7f0aa fix: Fixture repo will now clone and set git config locally (#307) 2019-09-07 11:25:01 -05:00
Nick Young eb724279da feat: Adds Git State module for showing "REBASING 2/3", etc. (#276)
- 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 (#281)
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 (#233)
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 (#286)
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 (#282) 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 (#268)
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 (#254) 2019-08-31 00:59:18 -07:00
Neil Kistner 9853743eda feat: Add commit count for ahead/behind symbols (#247)
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 (#239)
* Add ability to use an alternate directory truncation style
2019-08-26 21:52:45 -04:00
Bruno Bigras feb737190e Add nix-shell support (#173) 2019-08-25 11:41:20 -04:00
Thomas O'Donnell 1478f8c2e9 Add support for detecting Python from Pipenv files (#221)
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 (#214) 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 (#197) 2019-08-20 00:42:25 -04:00
John Merchant 5af70b9699 fix: Fix directory_in_root integration test on Windows (#181) 2019-08-18 11:55:45 -04:00
Kevin Song 85ac0a6801 fix: Set default prompt character to ❯ (#177) 2019-08-18 11:34:45 -04:00
Shu Kutsuzawa d90c43b8b1 feat: Display Vi mode as PROMPT (#169)
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 (#165) 2019-08-16 20:29:22 -07:00
Bruno Bigras 7124e353db fix: Fix compilation on NixOS with sandboxing (#164) 2019-08-16 15:01:09 -04:00
Kevin Song e250e71019 fix: Don't run tests for ruby outside of the integration tests (#155) 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 (#131) 2019-08-13 18:43:29 -04:00
Matan Kushner 7424e9674c
fix: Fix issues with nodejs and golang configuration (#146)
* 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 (#140)
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 (#85) 2019-08-12 13:42:33 -04:00
MaT1g3R 3669e389b6 feat: Implement Python virtual environment display (#137) 2019-08-11 17:51:13 -04:00
Kevin Song 39598ec691 feat: Add configuration to change the character for non-zero sta… (#133)
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 (#118)
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 (#120)
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 (#116)
- 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 (#99)
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 (#101) 2019-07-19 15:56:36 -04:00
Matan Kushner 463ec26024
feat: Add a `disabled` configuration option for modules (#86)
• 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 (#62)
- 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 (#71)
- 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 (#68) 2019-05-29 22:58:46 +02:00
Youssef Habri 08b238114e feat: Implement the prompt module for username (#56) 2019-05-19 22:26:12 -04:00
Matan Kushner 2cf69a82b7
ci: Fix CI to work with changes to Azure Pipelines build agent (#55) 2019-05-16 09:40:30 -06:00
John Letey c95bb60571 Add integration tests for Python segment (#38) 2019-05-13 21:53:26 -06:00
John Letey d3ce00c516 Add Go version module (#44) 2019-05-11 23:58:45 -04:00
Matan Kushner c6ee5c6ac1
Refactor segments into modules (#40) 2019-05-01 16:34:24 -04:00
Matan Kushner d945b03093
Install a fixed version of rust for CI integration tests (#39) 2019-05-01 11:12:02 -04:00
Matan Kushner 0872d524ca
Add docker for integration tests (#37) 2019-04-28 13:34:46 -04:00
Matan Kushner 5980a0a845
Revert "Add docker for integration tests" (#36)
This reverts commit 67d938c3de.
2019-04-28 13:08:49 -04:00
Matan Kushner 67d938c3de
Add docker for integration tests (#26) 2019-04-28 12:38:55 -04:00
Matan Kushner bb2bcd604b
Share dir_files between segments through Context (#16) 2019-04-23 14:51:08 -04:00
Matan Kushner 022e0002e4
Use "context" to contain run details (#14)
* Create "context" to contain run details

* Use context in tests and benchmarks
2019-04-19 16:57:14 -04:00
Matan Kushner fd42d81273
Replace tempdir with tempfile (#7) 2019-04-16 07:59:57 -07:00
Matan Kushner 794ae7b2ad
Add integration tests (#6)
### Changed
- Added current_dir param to segments to make them more testable
- Moved all existing integration tests to a `tests/` dir

### Added
- A whole bunch of new integration tests
2019-04-15 20:54:52 -04:00