ion issueshttps://gitlab.redox-os.org/redox-os/ion/-/issues2021-06-01T12:33:57Zhttps://gitlab.redox-os.org/redox-os/ion/-/issues/418prompt: Syntax Highlighting in Prompt2021-06-01T12:33:57ZMichael Aaron Murphymmstick@pm.meprompt: Syntax Highlighting in PromptWill require some seirous modifications to [liner](https://github.com/MovingtoMars/liner) in order to get this to work. I'm insure of the best approach for implementing this feature at the moment. Regex or a parsing crate may be ideal. S...Will require some seirous modifications to [liner](https://github.com/MovingtoMars/liner) in order to get this to work. I'm insure of the best approach for implementing this feature at the moment. Regex or a parsing crate may be ideal. Solution needs to focus on performance though. The following needs to occur:
- [ ] Color the command based on if the command exists or not
- [ ] Single quoted text should have a different color from double quoted text
- [ ] Operators should have their own unique colors
- [ ] Specific keywords should be highlighted, such as `end` and `if`
- [ ] Variables should also be highlighted
- [ ] Arrays should have a different color than variables
- [ ] Functions and aliases may also have different colors
- [ ] The coloring should be user-configurable and ideally match the grammar usage (in treesitter)Ion Shell v1.0.0Sag0Sag0Sag0Sag0https://gitlab.redox-os.org/redox-os/ion/-/issues/849A new builtin to quietly run a detached process2019-09-04T05:38:10ZElahn IentileA new builtin to quietly run a detached processTraditionally, this is done by redirecting stdout and stderr to /dev/null, to prevent it cluttering up the terminal, backgrounding the process then disowning it. e.g.
```
# xed launch.sh &> /dev/null &
# disown
```
Launching a GUI appl...Traditionally, this is done by redirecting stdout and stderr to /dev/null, to prevent it cluttering up the terminal, backgrounding the process then disowning it. e.g.
```
# xed launch.sh &> /dev/null &
# disown
```
Launching a GUI application from the command-line with a file/directory argument is common, so we should make it quick and simple. Possible names for this builtin command:
- run
- start
- launchIon Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/982Fish-like syntax highlighting2020-12-12T21:59:39Zcinerea0Fish-like syntax highlightingCurrently, ion features fish-like autosuggestions (I've raised [an issue](https://gitlab.redox-os.org/redox-os/ion/-/issues/971) about disabling those, but that's beside the point). Another cool feature from fish is syntax highlighting t...Currently, ion features fish-like autosuggestions (I've raised [an issue](https://gitlab.redox-os.org/redox-os/ion/-/issues/971) about disabling those, but that's beside the point). Another cool feature from fish is syntax highlighting that occurs when typing; [this is also possible in zsh](https://github.com/zsh-users/zsh-syntax-highlighting) by hooking into the Zsh Line Editor. Is this planned as a direct feature for ion, and if not, is there a plan to indirectly allow it in a similar way to zsh?Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/566Control Flow Redirections?2020-12-12T23:48:33ZMichael Aaron Murphymmstick@pm.meControl Flow Redirections?Should control flow keywords be able to perform and work with redirections themselves?
```sh
for x in 1...10
echo $x
end > results.txt
```
And a theoretical `map` keyword that works similar to `for`, but reads from stdin:
```sh
ca...Should control flow keywords be able to perform and work with redirections themselves?
```sh
for x in 1...10
echo $x
end > results.txt
```
And a theoretical `map` keyword that works similar to `for`, but reads from stdin:
```sh
cat results.txt | map x
echo $x
end
```
And combined:
```sh
for x in 1...10
echo $x
end | filter x
ends-with 5 $x
end | map x
echo $x
end
```
```Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/920Official container builds2021-06-01T13:51:19ZColeman McFarlandOfficial container buildsShould we have official container builds for ion that live alongside our [other images](https://hub.docker.com/u/redoxos)? We could use docker, or another OCI container builder.
Benefits:
* Another way for interested folks to try ion.
*...Should we have official container builds for ion that live alongside our [other images](https://hub.docker.com/u/redoxos)? We could use docker, or another OCI container builder.
Benefits:
* Another way for interested folks to try ion.
* Test environments for ion's debian packages (and redhat, and alpine...)
* The ability to use `image: redoxos/ion:0.x.x` in _other_ CI jobs, so we can dogfood more ion scripts for automation
Drawbacks:
* builds taking up resources on the serverIon Shell v1.0.0matu3bamatu3bahttps://gitlab.redox-os.org/redox-os/ion/-/issues/832Sudo completion doesn't work with `$PATH`2020-04-22T02:52:47Zstratactstratact1@gmail.comSudo completion doesn't work with `$PATH`For instance, when I do `# sudo pv<TAB>` to try to complete it as `sudo pvcreate`, it does nothing.
But when doing `# pv<TAB>` I get the list of completions without sudo:
```
pvchange pvck pvcreate pvdisplay pvmove pvremo...For instance, when I do `# sudo pv<TAB>` to try to complete it as `sudo pvcreate`, it does nothing.
But when doing `# pv<TAB>` I get the list of completions without sudo:
```
pvchange pvck pvcreate pvdisplay pvmove pvremove pvresize pvs pvscan
```Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/825`./script`<TAB> becomes `script.sh` after tab completion2018-10-30T19:37:26ZMichael Aaron Murphymmstick@pm.me`./script`<TAB> becomes `script.sh` after tab completionIon Shell v1.0.0stratactstratact1@gmail.comstratactstratact1@gmail.comhttps://gitlab.redox-os.org/redox-os/ion/-/issues/818cargo install ion2020-12-12T23:18:13ZSquirrelcargo install ionWould be lovely if cargo install ion worked just like cargo install bat or cargo install ripgrep works.
Then I could just type ion and run the shell.
(Liking your work, trying to use it as main shell)Would be lovely if cargo install ion worked just like cargo install bat or cargo install ripgrep works.
Then I could just type ion and run the shell.
(Liking your work, trying to use it as main shell)Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/805Easy substring removal2023-03-10T13:53:44ZColeman McFarlandEasy substring removalI want to use ion to parse a config that looks like this, where the unique name given before the underscore `_`
is treated as part of a set.
```sh
HOST1_USERFILE=cloud-config/one.yml
HOST1_OS=ubuntu_18_04
HOST1_FACILITY=sjc1
HOST2_USE...I want to use ion to parse a config that looks like this, where the unique name given before the underscore `_`
is treated as part of a set.
```sh
HOST1_USERFILE=cloud-config/one.yml
HOST1_OS=ubuntu_18_04
HOST1_FACILITY=sjc1
HOST2_USERFILE=cloud-config/two.yml
HOST2_OS=ubuntu_18_04
HOST2_FACILITY=sjc1
```
I am using hashmap as a set. The following doesn't _quite_ work, because the "" empty string is not treated as an argument to `@replace`.
```
let hosts:hmap[] = [ ]
let name = $replace("HOST1_USERFILE", "_USERFILE" "")
let hosts[$name] = $name
```
I could do use a space instead of empty string:
```
let name = $replace("HOST1_USERFILE", "_USERFILE" " ") # a space, inst
```
... but the space is preserved in the value of `$name`.
I could use trim #802 when it lands, but a dedicated substring removal method might be nice.Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/801Prompt Written w/ Quoted Multiline Inputs2018-10-20T18:17:41ZMichael Aaron Murphymmstick@pm.mePrompt Written w/ Quoted Multiline InputsThe prompt is not supposed to be written when there's a multi-line input, but it seems that's the case now.
```
~ # echo 'one
~ # two
~ # three
~ # four
~ # '
one
two
three
four
~ #
```The prompt is not supposed to be written when there's a multi-line input, but it seems that's the case now.
```
~ # echo 'one
~ # two
~ # three
~ # four
~ # '
one
two
three
four
~ #
```Ion Shell v1.0.0Grant CookseyGrant Cookseyhttps://gitlab.redox-os.org/redox-os/ion/-/issues/397shellac: Application-Specific Tab Completions2021-06-01T11:05:12ZMichael Aaron Murphymmstick@pm.meshellac: Application-Specific Tab Completions*Created by: xTibor*
The `sudo` command should have command completions. At the moment the tab completions suggests files and directories for this command.
**Build information**:
`git rev-parse HEAD`: eb13ba645bad3b311843f38f84455ce3a5...*Created by: xTibor*
The `sudo` command should have command completions. At the moment the tab completions suggests files and directories for this command.
**Build information**:
`git rev-parse HEAD`: eb13ba645bad3b311843f38f84455ce3a53fdb8d
`rustc -V`: rustc 1.20.0-nightly (720c596ec 2017-07-08)Ion Shell v1.0.0BafDyceBafDycehttps://gitlab.redox-os.org/redox-os/ion/-/issues/998vi-mode: `e` does not work properly2021-08-31T08:28:31Zmseravallivi-mode: `e` does not work properlyin VI normal mode the `e` navigation does not work properly, it misses the last character.
How to reproduce:
```
[input from keyboard: ESC i l o r e m SPACE i p s u m]
$ lorem ipsum
[input from keyboard: ESC 0 d e]
$ m ipsum
```
Exp...in VI normal mode the `e` navigation does not work properly, it misses the last character.
How to reproduce:
```
[input from keyboard: ESC i l o r e m SPACE i p s u m]
$ lorem ipsum
[input from keyboard: ESC 0 d e]
$ m ipsum
```
Expected result ` ipsum`
This happens as well if I try to change the word:
```
[input from keyboard: ESC i l o r e m SPACE i p s u m]
$ lorem ipsum
[input from keyboard: ESC 0 c e h e l l o]
$ hellom ipsum
```
Expected result `hello ipsum`Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/995neovim: can not read /tmp file created by shell2020-12-30T10:16:06Zmatu3baneovim: can not read /tmp file created by shellbug: I would like to use ion as shell inside neovim to read build logs in a new buffer or new tab. However neovim can not read /tmp files. Probably, because they are not created?
expect: ion should create /tmp files upon request and re...bug: I would like to use ion as shell inside neovim to read build logs in a new buffer or new tab. However neovim can not read /tmp files. Probably, because they are not created?
expect: ion should create /tmp files upon request and reading /tmp files should be possible
related: none
code: input to neovim in visual mode
```sh
:r !ls
```
expect: output
```txt
folder1
folder2
...
```
actual: output
```txt
Shell exit 1
E485: can not read file /tmp/nvimnokcRa/1
...
```
kernel: linux5.7
version: e033ca1c0c2ff8d1932137d2ed7354d003ad9cdc
interaction: none
context: run inside alacritty
behavior of bash: worksIon Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/968packaging(ppa): The repository does not have a Release file2021-06-02T19:25:28ZRyan Johnsonryan.johnson.code@gmail.compackaging(ppa): The repository does not have a Release filePopShop fails to update after registering the ppa:
```
E: The repository 'http://ppa.launchpad.net/mmstick76/ion-shell/ubuntu focal Release' does not have a Release file.
W: Updating from such a repository can't be done securely, and is ...PopShop fails to update after registering the ppa:
```
E: The repository 'http://ppa.launchpad.net/mmstick76/ion-shell/ubuntu focal Release' does not have a Release file.
W: Updating from such a repository can't be done securely, and is therefore disabled by default.
W: See apt-secure(8) manpage for repository creation and user configuration details
```
Pop!_OS 20.20LTSIon Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/967Multi-line strings in REPL not working2021-01-08T00:16:27ZAntonio Juan QuerolMulti-line strings in REPL not workingThanks for creating this nice and fast shell, I'm new and trying to use it, following the manual I arrive to this point:
[Multi-line strings](https://doc.redox-os.org/ion-manual/html/misc/05-multiline-strings.html) on issue #241 https:/...Thanks for creating this nice and fast shell, I'm new and trying to use it, following the manual I arrive to this point:
[Multi-line strings](https://doc.redox-os.org/ion-manual/html/misc/05-multiline-strings.html) on issue #241 https://gitlab.redox-os.org/redox-os/ion/issues/241, ii is implemebted for both rpl and scripting, but I use it with (starship), but I enanble and disable it, and I'm getting this error:
toni:~/learn/rust/ion# echo "This is first line
ion: syntax error: unterminated double quote
I tests it whith/without starship, inside emacs with vterm, and from an ion script(it works in this case):
![Captura_de_pantalla_2020-06-03_a_las_9.46.06__2_](/uploads/e9a81456912ebf8ff7c4ecaea34a6569/Captura_de_pantalla_2020-06-03_a_las_9.46.06__2_.png)Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/964Missing man page for ion2021-06-01T12:28:47ZAndrew PennebakerMissing man page for ionThe manual doesn't seem to say whether ion takes `-n` to check syntax, `-c` to run one-off commands and exit, `-h`, `--version`, or other common flags. Which flags exactly are supported?
Could we get a conventional man page, esp. for Li...The manual doesn't seem to say whether ion takes `-n` to check syntax, `-c` to run one-off commands and exit, `-h`, `--version`, or other common flags. Which flags exactly are supported?
Could we get a conventional man page, esp. for Linux users to lookup such information?Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/963bug: source-sh broken, improve documentation2020-12-16T00:59:25Zmaxice8bug: source-sh broken, improve documentationI'm trying to use `source-sh` to get some variables from an Alpine Linux APKBUILD into the environment of the Ion shell.
The APKBUILD looks like this:
```
# Contributor: dai9ah <dai9ah@protonmail.com>
# Maintainer: dai9ah <dai9ah@proto...I'm trying to use `source-sh` to get some variables from an Alpine Linux APKBUILD into the environment of the Ion shell.
The APKBUILD looks like this:
```
# Contributor: dai9ah <dai9ah@protonmail.com>
# Maintainer: dai9ah <dai9ah@protonmail.com>
pkgname=2bwm
pkgver=0.3
pkgrel=0
pkgdesc="Fast floating window manager"
url="https://github.com/venam/2bwm"
arch="all"
license="ISC"
makedepends="libxcb-dev xcb-util-keysyms-dev xcb-util-wm-dev xcb-util-xrm-dev"
options="!check" # no test suite
subpackages="$pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://github.com/venam/2bwm/archive/v$pkgver.tar.gz"
prepare() {
default_prepare
sed -i Makefile -e "/CFLAGS/{s/+=-Os /+=/}"
}
build() {
make
}
package() {
make PREFIX=/usr DESTDIR="$pkgdir" install
}
sha512sums="088a97e5245287890c72e2b0685f7348a4cc0fd49582893b7ce7a081f80a4d7454a3c0eadf4609589314351ded02fd8b75548019b782e797350ad5db5c939f92 2bwm-0.3.tar.gz"
```
After sourcing it with `source-sh` i expect the variables in the root of the document to be accessible from Ion.Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/957Tracking Issue Shortcuts2020-12-12T22:18:57Zmatu3baTracking Issue ShortcutsList of necessary shortcuts (keypressing + alias)
#845
#934
#940
#951
List of (half)broken shortcuts
#907
#923
Improvements
#941
#930
#929
#928List of necessary shortcuts (keypressing + alias)
#845
#934
#940
#951
List of (half)broken shortcuts
#907
#923
Improvements
#941
#930
#929
#928Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/954Tracking Issue feature comparison to other command shells2020-12-12T22:20:14Zmatu3baTracking Issue feature comparison to other command shellsSince we aim for speed and reasonable simplicity, this tracks what feature the shell has in a comprehensive list shamelessly [copied from wikipedia](https://en.wikipedia.org/wiki/Comparison_of_command_shells).
Non-goals will be over tim...Since we aim for speed and reasonable simplicity, this tracks what feature the shell has in a comprehensive list shamelessly [copied from wikipedia](https://en.wikipedia.org/wiki/Comparison_of_command_shells).
Non-goals will be over time separated into a second table with free text.
This is a WIP for documentation and project oversight from a very general perspective and intended to be in the manual.
*General*
| Feature | implemented | doc | integration tests | bug free |
| ---------------------------- | ---------- | ------ | ----------------- | -------- |
| Mouse support | copy/paste | | | |
| [[Unicode]] support | yes | | | |
| [[ISO 8601]] support | yes | | | |
| Console redirection | yes | | | |
| Stream redirection | yes | | | |
| Logging | yes | | | |
*Interactive*
| Feature | implemented | doc | integration tests | bug free |
| ---------------------------- | ---------- | ------ | ----------------- | -------- |
| Completion: command name | yes | | | |
| Completion: path | yes | | | |
| Completion: command argument | - | | plan: shellac | |
| Completion: wildcard | - | | | |
| History commands | yes | | | |
| Automatic suggestions | yes | | plan: shellac | |
| Colored highlighting | - | | | |
| Text highlighting | - | | | |
| Syntax highlighting | - | | | |
| Directory history, stack etc | yes | | | |
| Implicit `cd` | yes | | | |
| Auto correction | - | | | |
| Integrated environment | - | | | |
| Snippets | - | | | |
| Value prompt | - | | | |
| options selector | - | | | |
| Progress indicator | - | | | |
| Context sensitive help | - | | | |
| Command builder | - | | | |
*Background execution*
| Feature | implemented | doc | integration tests | bug free |
| ---------------------------- | ---------- | ------ | ----------------- | -------- |
| process tracking | - | | | |
*Programming*
| Feature | implemented | doc | integration tests | bug free |
| ---------------------------- | ---------- | ------ | ----------------- | -------- |
| functions | yes | | | |
| exception handling | yes | | | |
| floating point | yes | | | |
| math function library | - | | | |
| linear array or lists | yes | | | |
| associative arrays | yes | | | |
| lambda functions | - | | | |
| eval functions | yes | | | |
*Strings and filenames*
| Feature | implemented | doc | integration tests | bug free |
| ---------------------------- | ---------- | ------ | ----------------- | -------- |
| alternation | - | | | |
| build-in regex | - | | | |
| globbing qualifiers | - | | | |
| recursive globbing | - | | | |
*IPC*
| Feature | implemented | doc | integration tests | bug free |
| ---------------------------- | ---------- | ------ | ----------------- | -------- |
| pipes | yes | | | |
| command substitution | yes | | | |
| process substitution | - | | | |
| subshells | - | | | |
| tcp/udp | - | | | |
| keystroke stacking | - | | | |
*Security*
| Feature | implemented | doc | integration tests | bug free |
| ---------------------------- | ---------- | ------ | ----------------- | -------- |
| secure password prompt | - | | | |
| encrypted variables | - | | | |
| file/directory passwords | - | | | |
| execute permissions | - | | | |
| untrusted script blocking | - | | | |
| restricted subshell set | - | | | |
| safe data subset | - | | | |
| stack smashing secured? | ? | | | |
| overflows possible? | ? | | | |
| reviewed? | ? | | | |Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/921Package install fails in Ubuntu 18.04 container2020-12-12T22:45:05ZColeman McFarlandPackage install fails in Ubuntu 18.04 containerI am not clear if this is supposed to be supported.
See [this dockerfile](https://gitlab.redox-os.org/coleman/ion-container/blob/master/Dockerfile.ubuntu-18.04-packaged) for the build steps I took.
This yields a dependency error:
```
...I am not clear if this is supposed to be supported.
See [this dockerfile](https://gitlab.redox-os.org/coleman/ion-container/blob/master/Dockerfile.ubuntu-18.04-packaged) for the build steps I took.
This yields a dependency error:
```
Step 5/5 : RUN apt-get install ion-shell -y
---> Running in 9e7eb31aac46
Reading package lists...
Building dependency tree...
Reading state information...
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
ion-shell : Depends: libc6 (>= 2.29) but 2.27-3ubuntu1 is to be installed
```Ion Shell v1.0.0