Commit Graph

247 Commits

Author SHA1 Message Date
JT
56b3fc61a3 Remove statements, replaced by pipelines (#4482) 2022-02-15 14:31:14 -05:00
JT
f3d3e819fb Fix main in scripts with captures (#4468)
* Fix main in scripts with captures

* Remove old comments
2022-02-14 10:53:48 -05:00
968ef1e953 add parameter to set thread count for parallel commands (#4424) 2022-02-11 12:46:36 -06:00
f275644e13 add --perf cli param (#4391)
* add `--perf` cli param

* clippy

* fixed 2 `cp` tests on windows
2022-02-09 16:08:16 -06:00
JT
d70d91e559 Remove old nushell/merge engine-q 2022-02-07 14:54:06 -05:00
fdce6c49ab engine-q merge 2022-02-07 19:11:34 +00:00
JT
cc1b784e3d Add initial nu-test-support port (#913)
* Add initial nu-test-support port

* finish changing binary name

* Oops, these aren't Windows-safe tests
2022-02-02 15:59:01 -05:00
JT
e91d8655c6 Only trim prompt (#876)
* Only trim the output for prompts

* Only remove the last newline
2022-01-28 18:22:09 -05:00
JT
4c029d2545 Automatically trim ends of stdin/stdout strings (#874) 2022-01-28 16:59:00 -05:00
JT
86eeb4a5e7 Fix a bad slice into erroring utf-8 buffer (#872) 2022-01-28 15:32:46 -05:00
JT
020ad24b25 "maybe text codec" version 2 (#871)
* Add a RawStream that can be binary or string

* Finish up updating the into's
2022-01-28 13:32:33 -05:00
JT
83ec374995 Add -c flag and others to cmdline args (#853)
* Add -c flag and others to cmdline args

* finish a little bit of cleanup

* Oops, forgot file
2022-01-26 12:26:43 -05:00
JT
8ee619954d Start support for commandline args to nu itself (#851)
* cmdline args wip

* WIP

* redirect working

* Add help and examples

* Only show flags in signature of more than help
2022-01-27 01:42:39 +11:00
JT
3d0b1ef1ce Highlight help tutor (#838)
* WIP

* Syntax highlight help, add tutor
2022-01-25 02:05:19 +11:00
ff9d88887b simple event keybinding (#773) 2022-01-18 19:32:45 +00:00
20eb348896 simple keybinding parsing (#768) 2022-01-18 08:48:28 +00:00
ac36f32647 remove dialoguer completions in favor of reedline's (#766) 2022-01-17 09:51:44 -06:00
89d99db94f menu options (#748) 2022-01-15 17:01:44 +00:00
40484966c3 Make env var eval order during "use" deterministic (#742)
* Make env var eval order during "use" deterministic

Fixes #726.

* Merge delta after getting config

To make sure env vars are all in the engine state and not in the stack.
2022-01-15 08:06:32 +11:00
58c5ea4937 menu with tab (#724) 2022-01-12 10:57:37 +00:00
47495715a6 context menu with nucompleter (#722) 2022-01-11 21:53:42 +00:00
JT
4860014cec silly keymap addition for quick shell changing (#710) 2022-01-10 09:17:58 +11:00
8a0d2b4e32 double prompt (#686)
* double prompt

* prompt env var name
2022-01-06 12:57:55 +00:00
JT
f71e16685c Add shells support to auto-cd (#674) 2022-01-05 21:48:55 +11:00
JT
affb9696c7 Fix directory change lag (#672) 2022-01-05 16:50:27 +11:00
JT
c158d29577 Add shells support (#671) 2022-01-05 15:35:50 +11:00
JT
41dbc641cc Some cleanups for cd/PWD (#667)
* Some cleanups for cd/PWD

* Some cleanups for cd/PWD
2022-01-05 11:26:01 +11:00
74dcd91cc3 Use only $nu.env.PWD for getting the current directory (#587)
* Use only $nu.env.PWD for getting current directory

Because setting and reading to/from std::env changes the global state
shich is problematic if we call `cd` from multiple threads (e.g., in a
`par-each` block).

With this change, when engine-q starts, it will either inherit existing
PWD env var, or create a new one from `std::env::current_dir()`.
Otherwise, everything that needs the current directory will get it from
`$nu.env.PWD`. Each spawned external command will get its current
directory per-process which should be thread-safe.

One thing left to do is to patch nu-path for this as well since it uses
`std::env::current_dir()` in its expansions.

* Rename nu-path functions

*_with is not *_relative which should be more descriptive and frees
"with" for use in a followup commit.

* Clone stack every each iter; Fix some commands

Cloning the stack each iteration of `each` makes sure we're not reusing
PWD between iterations.

Some fixes in commands to make them use the new PWD.

* Post-rebase cleanup, fmt, clippy

* Change back _relative to _with in nu-path funcs

Didn't use the idea I had for the new "_with".

* Remove leftover current_dir from rebase

* Add cwd sync at merge_delta()

This makes sure the parser and completer always have up-to-date cwd.

* Always pass absolute path to glob in ls

* Do not allow PWD a relative path; Allow recovery

Makes it possible to recover PWD by proceeding with the REPL cycle.

* Clone stack in each also for byte/string stream

* (WIP) Start moving env variables to engine state

* (WIP) Move env vars to engine state (ugly)

Quick and dirty code.

* (WIP) Remove unused mut and args; Fmt

* (WIP) Fix dataframe tests

* (WIP) Fix missing args after rebase

* (WIP) Clone only env vars, not the whole stack

* (WIP) Add env var clone to `for` loop as well

* Minor edits

* Refactor merge_delta() to include stack merging.

Less error-prone than doing it manually.

* Clone env for each `update` command iteration

* Mark env var hidden only when found in eng. state

* Fix clippt warnings

* Add TODO about env var reading

* Do not clone empty environment in loops

* Remove extra cwd collection

* Split current_dir() into str and path; Fix autocd

* Make completions respect PWD env var
2022-01-05 09:30:34 +11:00
JT
4d1ce6c27b Use default prompt as fallback (#663) 2022-01-05 06:49:04 +11:00
JT
ffaaa53526 Plugin before config (#642)
* Add fuzzy/ignore flag to get

* Handle plugins before config
2022-01-02 14:20:33 +11:00
a56994ccc5 make prompt indicators configurable (#639)
* make prompt indicators configurable

* seems to be working now
2022-01-02 09:53:16 +11:00
JT
ac487dfcbc Add parser tracing, fix 629 (#638) 2022-01-02 08:42:50 +11:00
JT
4383b372f5 Cleanup binary stream print a little (#637) 2022-01-01 21:42:15 +11:00
15b0424d73 Create config directory if it does not exist (#625)
Signed-off-by: nibon7 <nibon7@163.com>
2021-12-30 21:47:51 +11:00
5c94528fe2 create history file if it doesnt exit (#605) 2021-12-28 06:14:23 +11:00
JT
3706bef0a1 Require let to be a statement (#594) 2021-12-27 14:04:22 +11:00
JT
a811eee6b8 Add support for 'open' (#573) 2021-12-25 06:24:55 +11:00
JT
3522bead97 Add string stream and binary stream, add text decoding (#570)
* WIP

* Add binary/string streams and text decoding

* Make string collection fallible

* Oops, forgot pretty hex

* Oops, forgot pretty hex

* clippy
2021-12-24 18:22:11 +11:00
29c8b826d4 add configuration point for hint coloring (#564) 2021-12-23 15:02:57 -06:00
ba1ff4cf6c add configuration of maximum history size (#563) 2021-12-23 13:59:00 -06:00
f3c175562d vi mode (#561) 2021-12-23 09:31:16 +00:00
JT
9fb12fefb0 Improve history hinting (#551) 2021-12-22 20:12:24 +11:00
deeb1da359 Allow having only one env conversion (#548)
Allows setting only `from_string` or `to_string` in `env_conversions`
config. Previously, both were required.
2021-12-22 00:32:38 +02:00
52dba91e1a Wrap captured env var names into quotes as well (#546) 2021-12-21 23:31:30 +02:00
1609101e62 Fix capturing environment variables with " or ' (#537)
* Fix path expand error span

* Fix capturing env vars containing ' or "; Rustfmt
2021-12-20 23:19:43 +02:00
JT
152467a858 Flatten should flatten embedded table (#534) 2021-12-21 06:03:18 +11:00
JT
2883d6cd1e Remove Span::unknown (#525) 2021-12-19 18:46:13 +11:00
ada9c742c6 Fix broken env var reading on startup (#513) 2021-12-17 23:09:44 +02:00
6a0f404558 Treating environment variables as Values (#497)
* Proof of concept treating env vars as Values

* Refactor env var collection and method name

* Remove unnecessary pub

* Move env translations into a new file

* Fix LS_COLORS to support any Value

* Fix spans during env var translation

* Add span to env var in cd

* Improve error diagnostics

* Fix non-string env vars failing string conversion

* Make PROMPT_COMMAND a Block instead of String

* Record host env vars to a fake file

This will give spans to env vars that would otherwise be without one.
Makes errors less confusing.

* Add 'env' command to list env vars

It will list also their values translated to strings

* Sort env command by name; Add env var type

* Remove obsolete test
2021-12-17 12:04:54 +11:00
efb4a9f95c Fix Ctrl-D exit in cli (#508)
Clears to a new line for the potentially hosting process
Remove the output for `Ctrl-C`
2021-12-16 15:40:12 -06:00