| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This adds a workaround for an issue with a Bash-5.1 bug reported by
@MaxenceG2M at
https://github.com/atuinsh/atuin/issues/962#issuecomment-3451132291. See
the added code comments for details.
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This patch tries to port a change for zsh-autosuggestion in #2780 to
suppress the error messages in typing the command. The same issue
happens with ble.sh, so we want to suppress the error message in the
same way as with zsh-autosuggestion.
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(#2977)
In #2953, I chose `\e[0;<n>A` as special key sequences for
`enter_accept` in Bash, but I realized that the sequence `\e[0;<n>A`
doesn't actually work in the `vi-insert` keymap. I instead suggest using
the key sequences of the form `\C-x\C-_A0\a` (99ddcbf7), which is
unlikely to conflict with the users' keybindings. In addition, for Bash
<= 3.2, I also noticed that we cannot insert `$READLINE_LINE` in the
command line when we are in the `vi-command` keymap. I suggest switching
from `vi-command` to `vi-insert` temporarily (e6c4e9fd).
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A user mentioned seeing the "UPGRADE" wording, and then expecting `atuin
upgrade` to work, when in fact the correct command is `atuin update`
Easy fix, wording adjusted
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds PowerShell support 🎉
I built this script around @lzybkr's
[prototype](https://github.com/atuinsh/atuin/issues/84#issuecomment-1689168533),
so I added him as co-author (I hope that's ok). I wouldn't know where to
start without his contribution.
I'm not a PowerShell expert, so this was a nice opportunity to learn
some stuff. I think it's ok, but I would appreciate if someone more
knowledgeable in the matter could review this though.
It would be nice if other PowerShell users could test this with their
configs and report any issues. I wouldn't be surprised if there are some
remaining bugs or missing features.
Fixes #84
## Installation
If you'd like to test this, you can install the `atuin` from this PR by
running:
```powershell
cargo install --git https://github.com/ltrzesniewski/atuin.git --branch powershell-pr
```
Then, add the following to your PowerShell profile file (whose path is
in `$PROFILE`) and restart the shell:
```powershell
atuin init powershell | Out-String | Invoke-Expression
```
This requires `atuin` to be in the path and the
[PSReadLine](https://github.com/PowerShell/PSReadLine) module to be
installed, which is the case by default.
## Tests
I tested this on the following:
- PowerShell 7.4.6 / PSReadLine 2.3.5 / Windows (the latest one)
- PowerShell 7.5.1 / PSReadLine 2.3.6 / Windows (the latest one)
- PowerShell 5.1.22621.4391 / PSReadLine 2.0.0 / Windows (the one
shipped with Windows)
- PowerShell 7.4.6 / PSReadLine 2.3.5 / Ubuntu WSL (strangely, it didn't
behave exactly like the Windows version)
- PowerShell 7.5.1 / PSReadLine 2.3.6 / Ubuntu WSL
I also tested this with and without my custom [Oh My
Posh](https://ohmyposh.dev/) prompt. It works fine in both cases,
~except that since my OMP config contains `"newline": true`, my prompt
is multiline and shifts downwards by a single line on each `atuin search
-i` invocation. This can be adjusted with the
`$env:ATUIN_POWERSHELL_PROMPT_OFFSET` environment variable (e.g. I set
mine to `-1` to account for the additional prompt line).~ (this variable
is now auto-initialized).
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
---------
Co-authored-by: Jason Shirk <jasonsh@microsoft.com>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
| |
Reverts atuinsh/atuin#2932
Resolves #2960
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
# Summary
Adjust the Nushell script to check the version and enable accept support
when Nushell 0.106.0 or greater is found.
See: https://github.com/nushell/nushell/pull/16193
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix panic when running "atuin stats" with an empty window size:
$ RUST_BACKTRACE=1 atuin stats year -n0
thread 'main' panicked at crates/atuin-history/src/stats.rs:278:14:
window size must be non-zero
stack backtrace:
0: __rustc::rust_begin_unwind
1: core::panicking::panic_fmt
2: core::option::expect_failed
3: atuin_history::stats::compute
4: atuin::command::client::Cmd::run_inner::{{closure}}
5: tokio::runtime::context::scoped::Scoped<T>::set
6: tokio::runtime::scheduler::current_thread::CoreGuard::block_on
7: tokio::runtime::context::runtime::enter_runtime
8: atuin::command::AtuinCmd::run
9: atuin::main
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a
verbose backtrace.
The ngram window size had a default value of 1 (indicating that perhaps
this case was considered), but did not validate the parsed value when a
non-default value was given.
Such validation can either occur:
1. during clap argument parsing
2. after clap parses arguments, but before computing statistics
If we were to do this after clap finishes parsing arguments, this would
be a runtime check in run(), but it seems better to return an error as
soon as possible.
It's possible to do this without a custom parsing function via
clap::value_parser! and specifying a range:
clap::value_parser!(u64).range(1..)
However, this does not appear to support custom error messages so we
would be left with the default message specifying an invalid range.
Therefore, add a custom parser function and return an error when the
value cannot be parsed as a valid ngram value.
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
### What does this PR do?
Adds simple navigation to the inspector, to explore a session starting
from a single command. This creates a new user flow, where a user can
find a history entry in the interactive view (in, say, Global mode), and
hit Ctrl+o to navigate back and forward through that command's session.
IMAGINED USE-CASE: I remembered that I did a sequence of git steps but I
can't remember the order and forgot to document it. I remember that
`reflog` was involved and want to see the actual sequence, and only
those commands.
IMAGINED USE-CASE: I used a curl command to get my IP address for
greenlisting before I connected to the bastion server `abc.xyz` over SSH
- I could easily find the SSH command with abc.xyz, and go back one step
in the session, but without this change, scrolling through all my curl
commands ever run to find a forgotten URL/domain would be too much work.
Since this gives the inspector tab a broader purpose than viewing
analytics, it needs to function even when there are not enough screen
rows for charts -- hence, this PR also introduces an ultracompact mode
for the inspector that _just_ shows the neighbouring history commands
(as simple scrolling three-entry list, with no panes) if there are fewer
than `auto_hide_height` rows (default: 8). Otherwise, the inspector
behaves as normal, except that Up / Down will change the focused command
by navigating through the session. That means there is no "compact" mode
for the inspector - when the interactive search is compact (but not
ultracompact), the inspector shows its usual chart view.
The UX for this could be improved - to keep this PR as lean as it
realistically can be, I have tried to keep the flow very minimal, but a
follow-up PR could introduce some tooltips, nicer ultracompact
formatting, etc.
A minor QoL improvement that comes with this - since I had to deal with
bold text and would otherwise have need a theming exception, I took the
opportunity to ensure the theme engine sets styles completely (so a
theme can have bold), not just colours. To limit scope creep, I do not
add TOML syntax so (for now) you can only customize colours from config
files, but it means that default-bold text (etc.) can now use the
theming engine if the code-defined default Meaning is bolded.
Key changes:
* introduces a simplified inspector tab, with only previous-current-next
commands as rows, in compact mode
* allows navigation through session history within the inspector (so
compact inspector view is still useful)
It also (see comments below):
* makes `compact` into `compactness`, an enum (to better standardize
across inspector/interactive)
* makes the inspector _only_ change layout for ultracompact mode, which
is still compact+(height<8)
* clippy's complexity limit wanted draw split up a little, so not sure
if this is a reasonable minimal way to do so for now
* adds a `(none)` theme to the theming to enable output testing without
styling
* ~~additional tests, although keen for input on how best to do these~~
one functional test, as a starting point
* ~~documentation~~ [minor doc changes
only](https://github.com/atuinsh/docs/pull/72), as I am not sure there
is much to say
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
_Was stacked on #2357, which is now in `main`_
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
This PR introduces a mechanism to use Readline's `accept-line` to run
the user command properly. The idea is described in [the code
comment](https://github.com/atuinsh/atuin/pull/2953/files#diff-57afeb258339de1b14a8dd3fdc88d1a0e192fd186706e570c44c3ef41f7a8c6dR362-R382)
in the added code. This naturally fixes #2935 because Readline's
`accept-line` also performs the necessary keymap transition.
This PR also fixes the behavior of <kbd>tab</kbd> and <kbd>enter</kbd>
with `enter_accept = false` `in Bash <= 3.2. In the previous
implementation, the selected command was lost in Bash 3.2, but this PR
correctly inserts the selected command into the command line buffer.
This PR adds a utility `atuin-bind` to make it easier to define custom
keybindings. The default bindings are also set up by the new function
`atuin-bind` now. This new function `atuin-bind` arranges all
non-trivial setups to make it possible to call Readline's `accept-line`.
The old mechanism using `__atuin_accept_line` is kept for existing users
who set up custom keybindings (without using the new function
`atuin-bind`).
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds an `atuin import powershell` command.
Of course, it is related to #2543 but I'm submitting it as a separate PR
since the code is self-contained and simple enough, and the feature
could be useful on its own.
/cc @ajn142 who [requested
it](https://github.com/atuinsh/atuin/issues/84#issuecomment-3091692807).
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds the commit SHA to the following:
- `atuin doctor`
- `atuin info` (which already displays the version)
- `atuin --version` (but not `atuin -V` in order not to affect `atuin
--help`)
I'm submitting this because I had issue reports in #2543 which were
already resolved, so being able to easily ask for the commit id would
have been helpful, as the version number isn't meaningful in a PR.
Also, I suppose the info should have been included in `atuin doctor` in
the first place, so that probably fixes an oversight.
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [ ] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [ ] I have checked that there are no existing pull requests for the
same thing
|
| |
|
|
|
|
|
|
|
|
| |
I wanted to use `command_chaining` to write a pipeline (`cmdA | cmdB`)
and was genuinely surprised it didn't work.
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change introduces (optional) acceptance keys of Backspace and Left
Arrow, when at the start of a line. These two are common muscle memory
actions for users.
The configuration defaults to false so as not to disrupt existing user
patterns.
This also adds a test that exercises the various acceptance modes, which
as it turns out was quite easy to do.
I discussed this on discord where [Ellie suggested I raised an
issue](https://discord.com/channels/954121165239115808/1421180955657244703/1422642337481228400),
but I felt like a PR would be more tangiable. I've tested this locally
and I'm very happy with how these keys work, it fits my needs well.
`exit_past_line_start` and `accept_past_line_start` can technically
co-exist. When this happens `accept_past_line_start` takes precedence.
Is this okay, or should we reconsider the config? Perhaps
`acceptance_keys = []` would be better here? I'm very open to changes
here.
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the
same thing
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if
you're adding a new feature or changing an existing one, we'd really
appreciate if you open an issue, post on the forum, or drop in on
Discord -->
## Checks
- [X] I am happy for maintainers to push small adjustments to this PR,
to speed up the review cycle
- [X] I have checked that there are no existing pull requests for the
same thing
Hopefully this one is mergeable as is, unlike the 1.89 upgrade.
Fixes: #2915
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
The command chaining feature can be implemented without the prefix.
|
| | |
|
| | |
|
| |
|
|
|
|
| |
session start
This mode mimics the default behavior for many shells.
|
| |
|
|
|
|
| |
- Config option: show_numeric_shortcuts (default: true)
- When false, hide 1–9 numeric badges; keep indicator on selected row
- Example key added to example config.toml
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This uses fullscreen mode if `inline_height` is larger than the terminal height.
Currently, in that situation, the screen is always cleared upon exit from `atuin search -i`. This change will preserve the buffer when Atuin takes the whole screen, which is a much friendlier behavior.
Demo by @LecrisUT: https://github.com/atuinsh/atuin/pull/2600#issuecomment-3228255130
Closes #2207
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the same thing
|
| |
|
|
|
|
|
| |
<!-- Thank you for making a PR! Bug fixes are always welcome, but if you're adding a new feature or changing an existing one, we'd really appreciate if you open an issue, post on the forum, or drop in on Discord -->
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the same thing
|
| |
|
|
|
|
|
|
|
|
|
| |
This parses the daemon.socket_path config item to allow it to be set to something like `"${XDG_RUNTIME_DIR}/atuin.sock"`.
Fixes https://github.com/atuinsh/atuin/issues/2490.
<!-- Thank you for making a PR! Bug fixes are always welcome, but if you're adding a new feature or changing an existing one, we'd really appreciate if you open an issue, post on the forum, or drop in on Discord -->
## Checks
- [x] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle
- [x] I have checked that there are no existing pull requests for the same thing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* feat: highlight matches in interactive search
uses `norm` to do fzf-compatible matches when rendering history items
in the search panel to highlight the matching ranges of the item
this helps see _why_ certain history items have come up
note that this will never be 100% perfect as we search on a sqlite query
but it should be good enough in most cases
* fmt
* fix some clippy issues
* refactor to pass in a history_highlighter instead of search and engine
* improve the highlighting on the selected row
---------
Co-authored-by: Ellie Huxtable <ellie@atuin.sh>
|
| |
|
|
| |
ATUIN_CONFIG_DIR is respected (#2707)
|
| | |
|
| |
|
|
|
|
|
|
|
| |
* fix: honor timezone in inspector stats
fixes: #2567
* docs: fix rustdoc warning about URL markup
* fix: pass timezone by value, as suggested by clippy (oops)
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
Only really useful for Atuin cloud
Given a % chance, either use the idx cache or use the old aggregation
query
This is to enable us to test rollout the idx cache, without breaking all
queries in weird ways. Can monitor for a change in http codes/etc, and
easily roll back.
|
| | |
|
| |
|
|
| |
inserted (#2841)
|
| | |
|
| | |
|
| |
|
|
|
| |
Since https://github.com/nushell/nushell/pull/16007, the recommended
flag is `--optional`. To avoid compatibility issues, the builtin optional
access syntax is used instead, which is backwards-compatible.
|
| | |
|
| |
|
|
|
| |
* feat: Support multi part commands
* fix: Clippy
|