exploide
30ae715183
completions: added ip neigh completions
2023-04-23 17:48:58 +08:00
Johannes Altmanninger
0fbefc6be2
Make IO buffer struct elements public again
2023-04-22 22:25:34 +02:00
Johannes Altmanninger
1bffa823d8
Allow to pass slices of owned strings to trace_if_enabled
2023-04-22 22:25:34 +02:00
Johannes Altmanninger
05ec1039ed
Rename autoclose_pipes_t to AutoClosePipes
2023-04-22 22:25:34 +02:00
Johannes Altmanninger
48e728e9fb
event: make some types public again
2023-04-22 22:25:34 +02:00
Johannes Altmanninger
6c07af9343
Shorthand for escaping with default options
...
Should probably do this on the C++ side too.
2023-04-22 22:25:34 +02:00
Johannes Altmanninger
19fe0f6a91
AST: implement try_source_range for union fields
...
Still not sure where the union fields are going.
I don't think they should implement Node.
2023-04-22 22:25:34 +02:00
Johannes Altmanninger
4c46faea99
Make ParsedSource members public again
2023-04-22 22:25:34 +02:00
Johannes Altmanninger
29891cf771
Finish and fix DirIter API
2023-04-22 22:25:34 +02:00
Johannes Altmanninger
07cc33e7aa
parse_util: deduplicate append_syntax_error macro
2023-04-22 22:25:34 +02:00
Johannes Altmanninger
56ad7fe0e5
Silence some more clippy lints
...
They are at odds with some direct translations.
2023-04-22 22:25:34 +02:00
Johannes Altmanninger
ec176dc07e
Port path.h
2023-04-21 13:57:29 +02:00
Johannes Altmanninger
629cbe0115
Env stubs for path port
2023-04-21 13:57:29 +02:00
Johannes Altmanninger
454009d13e
Rust.cmake: break up long line
2023-04-21 13:57:29 +02:00
Johannes Altmanninger
eb1598ea9a
Port parser_keywords
...
This drops some of the optimizations, we should probably add them back.
2023-04-21 13:57:29 +02:00
Johannes Altmanninger
1df64a4891
Replace maybe_t::missing_or_empty with a more Rust-friendly helper
...
There are many places where we want to treat a missing variable the same as
a variable with an empty value.
In C++ we handle this by branching on maybe_t<env_var_t>::missing_or_empty().
If it returns false, we go on to access maybe_t<env_var_t>::value() aka
operator*.
In Rust, Environment::get() will return an Option<EnvVar>.
We could define a MissingOrEmpty trait and implement it for Option<EnvVar>.
However that will still leave us with ugly calls to Option::unwrap()
(by convention Rust does use shorthands like *).
Let's add a variable getter that returns none for empty variables.
2023-04-21 13:57:29 +02:00
Johannes Altmanninger
82a797db9c
clang-format C++ builtins
2023-04-21 13:57:29 +02:00
Johannes Altmanninger
33f51b45e4
Tease apart parser.eval() overloads
...
The most common overload takes a string and an io chain so let that one keep
its name.
2023-04-21 13:57:29 +02:00
may
beca70458b
add recent commits to completion for git switch --detach
2023-04-21 07:44:50 +02:00
Fabian Boehm
76b3965648
docs/string: Separate "pad" and "shorten"
...
This isn't the same as "join"/"join0", where one is just a special
case of the other.
These are two different, if basically opposite commands.
But more importantly this was a huge mess and the formatting was broken.
2023-04-20 22:17:08 +02:00
Johannes Altmanninger
12ce42a2f9
Rename kw() to keyword() also in C++
2023-04-19 22:43:36 +02:00
Johannes Altmanninger
e4f6169a01
clang-format C++ files
...
Forgot to run this after the wcstring_list_t -> std::vector<wcstring> rename.
2023-04-19 22:43:36 +02:00
Paiusco
564039093b
Create fish_[default|vi]_key_bindings documentation
...
- Create docs file for both vi and default key bindings
- Remove variable mention on `interactive` and point to their own pages
2023-04-19 19:22:55 +02:00
AsukaMinato
f5e063a462
add-qjsc-fish ( #9731 )
...
* add-qjsc-fish
* fix -o qjsc.fish
2023-04-19 19:21:55 +02:00
Johannes Altmanninger
09ffac5a0a
Port parse_util_compute_indents
2023-04-19 10:35:22 +02:00
Johannes Altmanninger
c25cc8df5d
Adopt rusty parse_util_unescape_wildcards
2023-04-19 10:32:16 +02:00
Johannes Altmanninger
12afb320a3
Port parse_util
...
Except for the indent visitor bits.
Tests for parse_util_detect_errors* are not ported yet because they depend
on expand.h (and operation_context.h which depends on env.h).
2023-04-19 01:03:16 +02:00
Johannes Altmanninger
36ba912779
Make some names public
2023-04-19 01:03:16 +02:00
Johannes Altmanninger
dc6aead17b
ast.rs: add Leaf::has_source() convenience function for now
...
This is exposed by our FFI bridge for convenience, so this makes porting
easier.
2023-04-19 01:03:16 +02:00
Johannes Altmanninger
966dc0d997
Fix how we pass error list output parameter when parsing AST
...
This makes it more convenient to pass None.
2023-04-19 01:03:16 +02:00
Johannes Altmanninger
22c8e9f60d
Don't leak ParseErrorList FFI crutch type into Rust
...
Just like 16ea4380c
(redirection.rs: don't leak FFI type into Rust code,
2023-04-09).
2023-04-19 01:03:16 +02:00
Johannes Altmanninger
fc5e97e55e
Expose u32 source offsets as usize
...
Computations should use usize, so this makes things more convenient.
Post-FFI we can make SourceRange fields private, to enforce this even easier.
2023-04-19 01:03:16 +02:00
Johannes Altmanninger
2ca27d2c5b
Implement Iterator for Tokenizer
2023-04-19 01:03:16 +02:00
Johannes Altmanninger
6ede7f8009
Delete wcstring_list_t
...
We don't want it in Rust. Remove it to smoothen the transition.
2023-04-19 01:03:16 +02:00
Fabian Boehm
db5c9badad
completions/git: Escape custom command names
...
This can be triggered by having a custom git command in e.g.
`/mnt/c/Program Files (x86)/foo/`.
Fixes #9738
2023-04-18 20:40:14 +02:00
Johannes Altmanninger
fdeb0d9f06
Port the rest of wcstringutil
2023-04-18 12:54:19 +02:00
Fabian Boehm
3bfe798dbb
Fix read_blocked
...
This caused math to assert out because it never wrote into the buffer.
Now, presumably it wrote somewhere but I don't know where, so fixing
this seems like a good idea.
Fixes #9735 .
2023-04-17 17:28:24 +02:00
ridiculousfish
1bf29a5e13
Support constructing a wcstring_list_ffi_t from Rust
...
This allows passing a vector of strings from Rust to C++
2023-04-16 13:36:13 -07:00
ridiculousfish
f0360efbfa
Add path_make_canonical in Rust
2023-04-16 13:36:13 -07:00
ridiculousfish
eecc796b04
Add a widestring split() function
...
This allows splitting widestrings about a char, similar to C++
split_string.
2023-04-16 13:36:13 -07:00
ridiculousfish
621a3a6a8b
Add Rust support for null terminated arrays
...
This adds support for "null-terminated arrays of nul-terminated strings"
as used in execve, etc.
2023-04-16 13:36:13 -07:00
Xiretza
ed3fdaa665
Change read_blocked parameter type to RawFd for clarity
2023-04-16 22:26:46 +02:00
Xiretza
14fc11b5b8
wcstod: adjust tests for new implementation
2023-04-16 22:26:46 +02:00
Xiretza
aab2f660a7
Port math builtin, tinyexpr and wcstod_underscores to Rust
2023-04-16 22:26:46 +02:00
Xiretza
cc744d30c0
io: add FFI wrappers for io_streams_t fields
2023-04-16 22:26:46 +02:00
Xiretza
ba5e1dfb69
builtins: port more error messages
2023-04-16 22:26:46 +02:00
Xiretza
be2ea8edf0
wcstod: extract wcstod_inner()
...
This function can be called with any char iterator, not just IntoCharIter
values.
2023-04-16 22:26:46 +02:00
Xiretza
6b687adb40
Implement IntoCharIter for &[char]
2023-04-16 22:26:46 +02:00
Fabian Boehm
a91689e211
Remove unneeded &
2023-04-16 22:22:04 +02:00
ridiculousfish
ead329db60
Replace a bunch of from_ffi with as_wstr calls
...
from_ffi copies a CxxWString into a new Rust WString, but as_wstr simply
gets the slice of chars directly.
Too many string types!
2023-04-16 12:50:53 -07:00