1
0
mirror of https://github.com/nushell/nushell.git synced 2025-03-30 18:46:29 +02:00
Commit Graph

1633 Commits

Author SHA1 Message Date
Jakub Žádník
920e0acb85
Fix load order of config files () 2022-07-10 18:12:24 +03:00
Jakub Žádník
b7d3623e53
Revert "make module imports in scripts used for relative path. ()" ()
This reverts commit 6dde231dde.
2022-07-10 15:16:46 +03:00
Justin Ma
4e90b478b7
Add bit operator: bit-xor () 2022-07-03 06:45:20 -05:00
JT
a48616697a
Rename bitwise operators for readability () 2022-07-02 17:05:02 -05:00
Justin Ma
b82dccf0bd
Add band and bor operator for bit operations ()
* Add `band` and `bor` Operator

* Add tests
2022-07-02 13:03:36 -05:00
Justin Ma
3917fda7ed
Update : Add shift operator bshl and bshr for integers ()
* Update : Add shift operator bshl and bshr for integers

* Add more tests
2022-07-02 06:48:43 -05:00
WindSoilder
6dde231dde
make module imports in scripts used for relative path. ()
* always load env

* add interactive argument for read_config_file
2022-07-01 06:35:09 -05:00
WindSoilder
fab3f8fd40
fix exit code ()
* fix exit code

* fix usage

* add comment
2022-06-20 09:05:11 -05:00
phiresky
42dbfd1fa0
SQLite History MVP with timestamp, duration, working directory, exit status metadata ()
This PR adds support for an SQLite history via 

The SQLite history is enabled by setting history_file_format: "sqlite" in config.nu.

* somewhat working sqlite history
* Hook up history command
* Fix error in SQlitebacked with empty lines

When entering an empty line there previously was the "No command run"
error with `SqliteBackedHistory` during addition of the metadata

May be considered a temporary fix

Co-authored-by: sholderbach <sholderbach@users.noreply.github.com>
2022-06-14 22:53:33 +02:00
Fernando Herrera
ff946a2f21
each while command ()
* each while command

* test value adjustment
2022-06-14 16:16:31 +02:00
WindSoilder
2dea9e6f1f
fix arg parse ()
* fix arg parse

* add ut, fix clippy

* simplify code

* fmt code
2022-06-11 20:52:31 +12:00
WindSoilder
c5cb369d8d
While starting nu, force PWD to be current working directory ()
* fix current working directory during start

* fix tests

* always set PWD to current_dir
2022-06-10 13:01:08 -05:00
WindSoilder
2e0b964d5b
handle SIGQUIT ()
* handle sigquit

* fix clippy
2022-06-09 07:08:15 -05:00
sec65
3c421c5726
Added loginshell config file ()
* Added loginshell config file 

* added sample login.nu

* added environment variable loginshell-path
2022-06-06 06:52:37 -05:00
Justin Ma
d44059c36b
feat: Add sensitive flag to get, fix ()
* feat: Add insensitive flag to get, fix 

* add get insensitive example

* Fix get flags

* Update get examples
2022-06-01 08:34:42 -05:00
Clements
46eb34b35d
Differentiate internal signature from external signature w.r.t. help ()
* Differentiate internal signature from external signature w.r.t. help

* Add in the --help flag to default externs in default config

* Remove unusued build_extern

Co-authored-by: mjclements <clements.michael.james@gmail.com>
2022-05-29 15:14:15 +02:00
WindSoilder
a8db4f0b0e
load config when requried () 2022-05-23 15:47:08 +03:00
WindSoilder
9e5e9819d6
adjust flatten default behavior () 2022-05-21 08:32:51 -05:00
Reilly Wood
633ebc7e43
Revert "Enable backtraces by default ()" ()
This reverts commit 8004e8e2a0.
2022-05-17 15:02:45 -07:00
Darren Schroeder
f0cb2f38df
refactor all write_alls to ensure flushing () 2022-05-17 13:28:18 -05:00
Reilly Wood
8004e8e2a0
Enable backtraces by default () 2022-05-16 17:04:41 -07:00
Darren Schroeder
0b95465ea1
add --table_mode -m parameter ()
* add `--table_mode` `-m` parameter

* underscores to dashes
2022-05-11 16:15:31 -05:00
pwygab
8d8f25b210
Fixing the flag issue ()
* Fixing the flag issue

* whoops, forgot the original point of the function

* Update deparse.rs

* Update deparse.rs

* Update deparse.rs

* maybe this might work

* fmt

* quotation marks works now due to a rigorous check for args.

* fmt and clippy

* kept the original escape_quote_string(), escaped " and \

* removed script.nu

* Added appropriate comments.
2022-05-09 07:01:58 -05:00
panicbit
49cbc30974
Add ends-with operator and fix dataframe operator behavior ()
* add ends-with operator

* escape needles in dataframe operator regex patterns
2022-05-02 20:02:38 +12:00
JT
4a69819f9a
Rename =^ to 'starts-with' () 2022-05-02 19:20:07 +12:00
JT
96f8691c8d
More escaping/unescaping fixes () 2022-05-02 09:49:31 +12:00
JT
f16401152b
Make if else more lazy () 2022-05-01 09:13:21 +12:00
Tomoki Aonuma
ae9c0fc138
Fix quoting for command line args ()
* Fix quoting for command line args

* Replace custom quoting with escape_quote_string

* Use raw string for now
2022-04-30 13:23:05 -05:00
JT
be3f0edc97
Fix 'range' range exclusive () 2022-04-26 13:39:38 -05:00
JT
ec611526ac
Warn if we see let config = ../.. () 2022-04-25 08:40:55 +12:00
JT
ee29a15119
Add 'and' and 'or' operators () 2022-04-23 07:14:31 +12:00
JT
96253c69fb
Use better quoting for commandline args () 2022-04-21 15:31:52 +12:00
JT
76079d5183
Move config to be an env var ()
* Move config to be an env var

* fix fmt and tests
2022-04-19 10:28:01 +12:00
Hristo Filaretov
cf65f77b02
Simplify known external tests ()
* Simplify known external tests

* Cargo fmt
2022-04-17 14:31:03 -05:00
Hristo Filaretov
7710317224
Add known external tests ()
* Add known external tests

* Add some documentation to the tests

* Document test_hello example

* Set PWD in run_test
2022-04-17 05:39:56 -05:00
Boy van Duuren
594006cfa0
Fix failing unit tests on Windows () ()
* Fix failing unit tests on Windows ()

Fix let_env_expressions failing on Windows:
The env expression uses PATH, but on windows Path is used.

Fix correctly_escape_external_arguments, execute_binary_in_string
failing on Windows:
Using cococo now to make sure testresults are platform independent

* Update macros.rs

Co-authored-by: JT <547158+jntrnr@users.noreply.github.com>
2022-04-12 06:18:46 +12:00
JT
14066ccc30
Fix known externals, fix operator spans () 2022-04-09 17:17:48 +12:00
JT
97eb8492a3
Improve $in handling ()
* Simplify in logic

* Add tests

* more tests, and fixes
2022-04-09 09:41:05 +12:00
JT
0b85938415
Soften the block arity checking () 2022-04-09 07:57:27 +12:00
Reilly Wood
b2c52b51b7
Change string contains operators to regex () 2022-04-07 18:23:14 +12:00
JT
888369022f
Add datetime to math-like ()
* Add datetime to math-like

* add test
2022-04-07 18:02:28 +12:00
JT
591fb4bd36
Add unary not () 2022-04-07 07:10:25 +12:00
Jakub Žádník
12d3e4e424
Add env.nu file for environment config ()
* Add env.nu file for environment config

* Add missing flag

* Add $nu.env-path variable

Prints `env.nu` path

* Add example of adding entries to PATH
2022-04-07 05:11:51 +12:00
JT
121a4f06fb
Load plugins for scripts and commands, too () 2022-04-06 19:45:26 +12:00
JT
6649da3f5d
Add support for single value row conditions () 2022-04-03 10:41:36 +12:00
Darren Schroeder
2cb815b7b4
Add starts with operator ()
* add starts_with operator

* added a test
2022-04-01 13:35:46 -05:00
JT
4bb95a880f
let a simple last be a single value () 2022-04-01 23:12:31 +13:00
Jakub Žádník
2873e943b3
Add search terms to Command and Signature ()
* Add search terms to command

* Rename Signature desc to usage

To be named uniformly with extra_usage

* Throw in foldl search term for reduce

* Add missing usage to post

* Add search terms to signature

* Try to add capnp Signature serialization
2022-03-27 22:25:30 +03:00
Andrew Barnes
a64e0956cd
Support binary data to stdin of run-external ()
* Add test for passing binary data through externals

This change adds an ignored test to confirm that binary data is passed
correctly between externals to be enabled in a later commit along with
the fix.

To assist in platform agnostic testing of binary data a couple of
additional testbins were added to allow testing on `Value::Binary` inside
`ExternalStream`.

* Support binary data to stdin of run-external

Prior to this change, any pipeline producing binary data (not detected
as string) then feed into an external would be ignored due to
run-external only supporting `Value::String` on stdin.

This change adds binary stdin support for externals allowing something
like this for example:

  〉^cat /dev/urandom | ^head -c 1MiB | ^pv -b | ignore
  1.00MiB

This would previously output `0.00 B [0.00 B/s]` due to the data not
being pushed to stdin at each stage.
2022-03-27 15:35:59 +13:00
JT
cf88c8eef3
Improve escaping in string interpolation () 2022-03-27 12:52:09 +13:00
Hristo Filaretov
8a9cc33aac
Fix alias import ()
* Fix alias import

Alias importing was registering the alias id as a decl instead of alias.
This caused issues when hiding and then reimporting the alias.

* Clippy format

Co-authored-by: Hristo Filaretov <h.filaretov@protonmail.com>
2022-03-25 17:56:40 -05:00
JT
bd5778fa24
remove the boolean vars () 2022-03-20 08:12:10 +13:00
JT
f3bb1d11d3
Add export alias and export extern ()
* export alias

* export extern
2022-03-20 07:58:01 +13:00
JT
983d115bc0
Add an alias denylist for expansions () 2022-03-19 08:03:57 +13:00
JT
d0cbb2d12c
Allow expanding aliases before keywords, improve hiding ()
* Allow aliasing source

* Add test

* improve hiding

* Finish adding tests

* fix test
2022-03-18 11:35:50 +13:00
Darren Schroeder
6700fbeed7
rename update to upsert to mirror what it really does ()
* rename `update` to `upsert` to mirror what it really does

* change to latest reedline and nu-ansi-term
2022-03-16 19:13:34 -05:00
Darren Schroeder
460d635ed0
update so that --log-level will work properly () 2022-03-17 08:58:11 +13:00
Charles Dixon
1a16b9a2c4
Move repl loop and command/script execution to nu_cli ()
* Refactor usage of is_perf_true to be a parameter passed around

* Move repl loop and command/script execution to nu_cli

* Move config setup out of nu_cli

* Update config_files.rs

* Update main.rs

Co-authored-by: JT <547158+jntrnr@users.noreply.github.com>
2022-03-17 07:17:06 +13:00
JT
0bd8664f33
Fix string interpolation escaping () 2022-03-16 05:09:30 +13:00
Fernando Herrera
6e65aef9bf
remove cmd from edit () 2022-03-13 20:05:13 +00:00
Fernando Herrera
5fcc670860
allow list to keybinding mode ()
* allow list to keybinding mode

* added comments to default.nu
2022-03-12 11:51:08 +00:00
Jakub Žádník
90b2ec537f
Do not pass non-string env vars to externals ()
* Do not pass non-string env vars to externals

Also misc cleanup

* Add note to default config

* Add a test

* Ensure PATH/Path conversion list <-> string
2022-03-12 00:18:39 +02:00
JT
9abb14b5fd
ensure exit codes in more cases () 2022-03-10 06:29:23 -05:00
JT
355b1d9929
Simplify empty?, improve default ()
* Simplify empty?, improve default

* improve test
2022-03-09 08:46:28 -05:00
JT
0835073d85
Adds the proper workarounds for short flags () 2022-03-09 08:04:50 -05:00
JT
99f7636b03
Remove duplicate code () 2022-03-09 05:21:11 -05:00
JT
dc0c5a9772
Revert "Make if blocks work like a def-env ()" ()
This reverts commit 477f3be8df.
2022-03-08 08:29:12 -05:00
JT
477f3be8df
Make if blocks work like a def-env ()
* Make `if` work like a def-env

* Add some tests

* Add an example
2022-03-08 07:45:47 -05:00
JT
299fea8538
Fix external extra ()
* Fix empty table from externals

* Fix empty table from externals
2022-03-07 20:17:33 -05:00
JT
1837bf775c
Default values () 2022-03-07 15:08:56 -05:00
JT
a2723c2ba4
Fix rest parsing ()
* More nuon tests, fix table print

* Fix rest type parsing
2022-03-07 11:44:27 -05:00
JT
4f43d75130
Simplify group/window into their own commands () 2022-03-06 20:01:29 -05:00
Fernando Herrera
488f81d012
history bang ()
* history bang

* change of char
2022-03-05 09:38:35 +00:00
JT
9c17c73d5f
Add more exit code support () 2022-03-04 17:46:18 -05:00
JT
e64ca97fe2
move scope variable into nu variable () 2022-03-04 11:36:11 -05:00
JT
7c205d7a3a
Remove the pack-in plugins () 2022-03-04 08:57:38 -05:00
JT
7d0531d270
Add support for escape characters, make nuon a JSON superset ()
* WIP

* Finish adding escape support in strings

* Try to fix windows
2022-03-03 13:14:03 -05:00
Fernando Herrera
2fd42d25b1
partial completions () 2022-03-03 11:13:44 +02:00
Darren Schroeder
50399c349f
relocate default config in sample_config folder ()
* relocate default config in sample_config folder

* relocate config file
2022-03-02 19:22:15 -06:00
JT
96a1bf5f8d
Experiment: Allow both $true/true and $false/false ()
* Change true/false to keywords

* oops, clippy

* Both kinds of bools

* Add in some boolean variables

* disable py virtualenv test for now
2022-03-02 19:55:03 -05:00
Justin Ma
42f1874a3a
Update some examples and docs ()
* Update some examples and docs

* Update now.rs

* Update date_now.md

Co-authored-by: JT <547158+jntrnr@users.noreply.github.com>
2022-03-01 08:05:29 -05:00
JT
a6a96b29cb
Add binary literals () 2022-02-28 18:31:53 -05:00
JT
cb5c61d217
Fix open ended ranges ()
* Make open ended ranges more open ended

* Add test
2022-02-28 11:15:31 -05:00
JT
0924975b4c
Use default_config.nu by default ()
* Use default_config.nu by default

* Fix default color
2022-02-28 10:12:08 -05:00
JT
d6a6c4b034
Add back in default keybindings ()
* Add back in default keybindings

* Add support for edit commands, add in undo
2022-02-28 08:54:40 -05:00
JT
7819210037
Add shortcircuiting boolean operators () 2022-02-27 17:02:53 -05:00
Fernando Herrera
10ceac998e
menu keybindings in default file ()
* menu keybindings in default file

* remove print

* change keybinding
2022-02-27 08:41:04 -05:00
JT
446c2aab17
Lets internals also have exit codes () 2022-02-27 08:16:19 -05:00
LordMZTE
d2bd71d2aa
add LAST_EXIT_CODE variable () 2022-02-26 08:57:45 -05:00
Fernando Herrera
3eca43c0bb
Plugins without file ()
* adding plugin location in script

* adding plugin location in script
2022-02-26 08:57:51 +00:00
JT
0c3ea636fb
Add support for stderr and exit code () 2022-02-25 14:51:31 -05:00
Darren Schroeder
2b377391c2
make message more readable ()
* make message more readable

* monsieur clippy
2022-02-25 12:58:47 -06:00
JT
2b1e4dd242
Use external exceptions in path strings () 2022-02-25 05:00:30 -05:00
JT
cbad648d0e
Windows external exceptions () 2022-02-24 18:01:32 -05:00
JT
3c62d27c28
Try again with math-like externals ()
* Try again with math-like externals

* clippy 1.59

* clippy 1.59

* clippy 1.59
2022-02-24 14:02:28 -05:00
JT
c984ce9dc9
Check for external exceptions more often () 2022-02-24 10:31:24 -05:00
JT
4b18fdcc6e
Date literals ()
* Date literals

* update deps

* Add date+duration
2022-02-23 21:02:48 -05:00
JT
25712760ba
Add support for math-like externals () 2022-02-22 10:55:28 -05:00
JT
9888f8f298
Add pipeline redirection support ()
* redirection

* Remove commented-out

* fix tests

* more fixes
2022-02-21 17:22:21 -05:00
JT
6d4784a7c1
Make 'each' implicitly filter out nothings ()
* Make 'each' implicitly filter out nothings

* another example
2022-02-21 15:49:08 -05:00
Darren Schroeder
e4dcdcb254
this little hack allows the color to be whatever the default is () 2022-02-21 12:46:04 -06:00
Darren Schroeder
88fa40d698
rename flatshape_* to shape_* () 2022-02-21 12:27:21 -06:00
JT
41fa1ab656
Show errors when a prompt fails () 2022-02-21 10:46:19 -05:00
JT
07cd8f483e
Make sure to apply captures when setting prompt () 2022-02-21 09:48:05 -05:00
JT
a2c4c92fce
Remove record iteration ()
* Remove record iteration

* Remove test
2022-02-21 09:12:04 -05:00
Joseph T. Lyons
4f367a59de
Strip trailing whitespace in files ()
* Strip trailing whitespace in rs files

* Strip trailing whitespace in toml files

* Strip trailing whitespace in md files

* Strip trailing whitespace in nu files
2022-02-21 08:38:15 -05:00
Darren Schroeder
9b2a022f5b
tweak default config to amplify theme-ability ()
* tweak default config to amplify theme-ability

* missed default of auto
2022-02-20 16:05:36 -06:00
JT
fd22211737
Add nuon format for fun ()
* Add nuon format for fun

* more fun

* More nuon fixes, allow comments, improve errors
2022-02-20 16:26:41 -05:00
JT
2ba12afb01
A few fixes to docs generation and default config ()
* A few fixes to docs generation and default config

* A few more fixes
2022-02-20 15:20:41 -05:00
Jakub Žádník
56aacc4852
Use environment variable for env_conversions ()
* Handle string->value env conv. with env. var.

Also adds the environment variable for Path/PATH and removes it from
config.

* Simplify getting the string->value conversion

* Refactor env conversion into its own function

* Use env var for to_string conversion; Remove conf

* Fix indentation in default config
2022-02-20 16:27:59 +02:00
JT
643c5097d6
Default config improvements ()
* Default config improvements

* Finish cleanup

* Add some comments
2022-02-20 07:48:46 -05:00
Fernando Herrera
52ee1917ba
default config file ()
* default config file

* fmt on files

* default file in separate file

* log level flag for performance logs

* clippy error
2022-02-20 05:08:53 -05:00
Justin Ma
aea4355d04
refactor: change column names from 'Column*' to 'column*' () 2022-02-19 19:26:47 -05:00
Michael Angerman
a6c565ed4e
change wording on config file () 2022-02-19 19:25:07 -05:00
Fernando Herrera
965cea3af5
flag to pass config file in nu ()
* flag to pass config file in nu

* return when no folder is created

* simple syntax for function
2022-02-19 14:54:43 -06:00
Fernando Herrera
0f4f660759
better keybinding parsing () 2022-02-18 19:00:23 -06:00
Jakub Žádník
c893cc1485
Add config to NuCompleter () 2022-02-18 13:54:13 -05:00
JT
06f9047be4
Add an explicit 'print' command () 2022-02-18 13:43:34 -05:00
JT
786e4ab971
Make 'for' implicitly filter out nothings ()
* Make 'for' implicitly filter out nothings

* Fix test
2022-02-18 13:41:41 -05:00
Genna Wingert
a967854332
Fix stream printing on Windows ()
Co-authored-by: Genna Wingert <wingertge@gmail.com>
2022-02-18 08:10:20 -06:00
Jakub Žádník
c7c427723b
Test support fixes ()
* Fix failing pipeline()

The `skip(1)` was there likely to remove the welcome message.

* Fix typo

* Fix nu! test macro to enter cwd correctly

Nushell's current working directory is determined primarily by the PWD
environment variable.
2022-02-18 00:23:04 +02:00
Stefan Stanciulescu
d50ccdf083
Add newline after version printout () 2022-02-17 06:29:58 -06:00
JT
6e733f49bc
Require block params ()
* Require block params

* Improve errors
2022-02-17 06:40:24 -05:00
Stefan Stanciulescu
f169a9be3b
Add version as a flag () 2022-02-17 05:02:46 -06:00
JT
5b6156687e
Use partial_cmp and make -i case insensitive ()
* Use partial_cmp and make -i case insensitive

* Insensitive sort multiple columns
2022-02-16 11:12:49 -05:00
JT
644435bfe3
Move and enable with-env test () 2022-02-16 04:59:44 -05:00
JT
e763a8dcef
Auto-hide aliases to prevent recursion () 2022-02-15 17:36:24 -05:00
JT
56b3fc61a3
Remove statements, replaced by pipelines () 2022-02-15 14:31:14 -05:00
JT
9114a2d31d
Ensure that reduce has a valid span () 2022-02-15 07:59:51 -05:00
JT
84f85ff9ae
Fix to json escape logic () 2022-02-15 06:55:57 -05:00
JT
fbaafaa459
Make param parsing more resilient, correct missing param error () 2022-02-14 12:33:47 -05:00
JT
f3d3e819fb
Fix main in scripts with captures ()
* Fix main in scripts with captures

* Remove old comments
2022-02-14 10:53:48 -05:00
Andrew Barnes
77eb4c4188
Fix default duplicates column ()
* Add test to ensure default not adding dup. columns

* Fix for default adding duplicate columns
2022-02-13 05:38:46 -05:00
Jakub Žádník
94a0e3060a
Update CI ()
* Add different features combinations

* Specify styles manually

* Fix args

* Fix typo

* Let other CI jobs finish if one fails

* Fix unused symbols without plugin feature

* Put "which" tests behind "which" feature

* Add Python virtualenv job

* Oops forgot git command

* Install Nushell in virtualenv tests

* Add names to steps; Test v.env in separate step

* cd into virtualenv

* Do not run on Python 2.7

* Build Nushell after formatting and clippy checks
2022-02-12 22:48:17 +02:00
Jakub Žádník
328f7e92a0
Hide alias ()
* Add alias interning

Now, AliasId is used to reference aliases stored in EngineState, similar
to decls, blocks, etc.

* Fix wrong message

* Fix using decl instead of alias

* Extend also alias id visibility

* Merge also aliases from delta

* Add alias hiding code

Does not work yet but passes tests at least.

* Fix wrong alias lookup and visibility appending

* Add hide alias tests

* Fmt & Clippy

* Fix random clippy warnings in "which" command
2022-02-12 11:50:37 +02:00
Darren Schroeder
968ef1e953
add parameter to set thread count for parallel commands () 2022-02-11 12:46:36 -06:00
JT
886ed5ab2d
Fix captures ()
* Fix rowcondition and import captures

* Only check extra blocks if not yet seen
2022-02-11 07:37:10 -05:00
JT
e6db37bc82
Fix multi-command variable captures () 2022-02-10 18:15:15 -05:00
Darren Schroeder
0e5f4d88c5
turn down the volume a little bit () 2022-02-10 15:22:39 -06:00
JT
2e3b2a48ee
Fix string interpolation paren cases () 2022-02-10 11:09:08 -05:00
JT
c2118e7505
Fix help flag ()
* Match 'help command' to 'command --help'

* Fix tests
2022-02-09 21:24:29 -05:00
Darren Schroeder
f275644e13
add --perf cli param ()
* add `--perf` cli param

* clippy

* fixed 2 `cp` tests on windows
2022-02-09 16:08:16 -06:00
JT
fc88a8538b
Make let-env work like let ()
* Make let-env work like let

* Fix tests
2022-02-09 13:41:41 -05:00
JT
f9e1c4ef50
Use 'table' on scripts and -c commands ()
* Use 'table' on scripts and -c commands

* Fix tests

* Oops, missed a spot
2022-02-09 05:58:54 -05:00
JT
d70d91e559 Remove old nushell/merge engine-q 2022-02-07 14:54:06 -05:00
Fernando Herrera
fdce6c49ab engine-q merge 2022-02-07 19:11:34 +00:00
JT
8a373dd554
Add each window () 2022-02-06 20:23:18 -05:00
JT
3eba90232a
Port each group () 2022-02-05 12:34:35 -05:00
JT
f29dbeddd7
Allow let-env to be dynamic () 2022-02-04 16:19:13 -05:00
Jakub Žádník
fefd5fef12
Allow def-env to hide environment variables () 2022-02-04 20:02:03 +02:00