Commit Graph

161 Commits

Author SHA1 Message Date
zeertzjq
3c480fca57 vim-patch:5bf41e7: runtime(netrw): update regex to handle remote archives (#35822)
closes: vim/vim#18318

5bf41e7418

Co-authored-by: Hirohito Higashi <h.east.727@gmail.com>
2025-09-18 08:01:33 +08:00
Yochem van Rosmalen
a57c7238f9 refactor(plugins)!: remove shellmenu #35815
Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
2025-09-17 11:03:58 -07:00
Jaehwang Jung
9ce21c9cf5 vim-patch:9e100b8: runtime(netrw): only keep cursor position in tree listing mode
fixes: vim/vim#16255
closes: vim/vim#18275

9e100b8d14

Co-authored-by: Tom Benham <tom.benham13@gmail.com>
2025-09-13 13:23:36 +09:00
Jaehwang Jung
886fcad894 vim-patch:5f83674: runtime(netrw): Ensure netrw#fs#Dirname() always returns a trailing slash
closes: vim/vim#18199

5f836749fa

Co-authored-by: Miguel Barro <miguel.barro@live.com>
2025-09-13 13:23:14 +09:00
Jaehwang Jung
c318da73b4 vim-patch:5346688: runtime(netrw): fix :Explore command in terminal
There are really two issues solved here:

- The directory listing was not populating the new buffer when using
  the :Explore command. This was because the directory to open is
  determined by using expand("%:p") which includes '!/running/command' at
  the end of the string in terminal buffers.

- The :Explore command should replace the buffer, not split it. This
  because the Explore command will automatically split if the current
  buffer has been modified. According to the docs, all terminal buffers
  will have the modified flag set when a job is running.

fixes: vim/vim#9862
closes: vim/vim#18069

53466887f7

Co-authored-by: Jason Long <jasonlongball@gmail.com>
2025-09-13 13:22:47 +09:00
Jaehwang Jung
2997031732 vim-patch:6a6a44f: runtime(netrw): netrw#BrowseX() needs to distinguish local and remote file
fixes: vim/vim#17794

6a6a44ffb5

Co-authored-by: Christian Brabandt <cb@256bit.org>
2025-09-13 13:22:08 +09:00
Jaehwang Jung
130c841287 vim-patch:c849b17: runtime(netrw): Use correct "=~#" for the netrw_sizestyle='H' option
Correct expression syntax to match case in if and if-else clauses.

related: vim/vim#8535
closes: vim/vim#17901

c849b17e19

Co-authored-by: veotos <veotos@users.noreply.github.com>
2025-09-13 13:22:08 +09:00
Jaehwang Jung
cad62f5ec6 vim-patch:0bda783: runtime(netrw): upstream snapshot v184
This change includes the following upstream commits:

- fix: remove black lines in directory listing
- fix: correctly create new file when using Lexplore
- refactor: remove print functionality

The main highlight is removing print functionality that was broken both
in neovim and vim.

closes: vim/vim#17847

0bda7830ac

Co-authored-by: Luca Saccarola <github.e41mv@aleeas.com>
2025-09-13 13:19:40 +09:00
Jaehwang Jung
68c9577519 vim-patch:b3eaae2: runtime(netrw): restore blank line cleanup after file listing
Problem:  v182 refactoring removed blank line cleanup (g/^$/d) from
          s:LocalListing(), causing empty lines between directories
          and files.
Solution: Add the missing cleanup after append() in s:PerformListing()
          (uma-chan).

closes: vim/vim#17672

b3eaae21b9

Co-authored-by: uma-chan <127664533+i9wa4@users.noreply.github.com>
Co-authored-by: Luca Saccarola <96259932+saccarosium@users.noreply.github.com>
2025-09-13 13:18:24 +09:00
Jaehwang Jung
8537133f82 vim-patch:ef92555: runtime(netrw): upstream snapshot of v182
relevant commits:
- refactor: cleanup netrw#BrowseX
- fix: correctly handle symlinks in treeview
- chore: add minimalrc for reproducing issues
- refactor: simplify s:NetrwInit with the 'newer' assignment syntax
- refactor: remove balloon functionality
- Tune local file listing especially for Windows network drives
- interim fix for browse open with multiple windows

closes: vim/vim#17616

ef925556cb

Co-authored-by: Luca Saccarola <github.e41mv@aleeas.com>
2025-09-13 13:18:24 +09:00
Jaehwang Jung
b643e1f3d5 vim-patch:2249cc0: runtime(netrw): remove the fun from netrw :)
closes: vim/vim#17584

2249cc0a47

Co-authored-by: Luca Saccarola <github.e41mv@aleeas.com>
2025-09-13 13:18:24 +09:00
Jaehwang Jung
7b2a42e962 vim-patch:7e47c1e: runtime(netrw): remove g:netrw_quiet and reindent to 4 spaces
closes: vim/vim#17539

7e47c1e735

Co-authored-by: Luca Saccarola <github.e41mv@aleeas.com>
2025-09-13 13:18:24 +09:00
Jaehwang Jung
4644e69bdc vim-patch:f5e3b5c: runtime(netrw): refactor netrw#ErrorMsg -> netrw#msg#Notify
closes: vim/vim#17526

f5e3b5c04f

Co-authored-by: Luca Saccarola <github.e41mv@aleeas.com>
2025-09-13 13:18:24 +09:00
Jaehwang Jung
1e2b75abb7 vim-patch:600cd88: runtime(netrw): remove comment separators
closes: vim/vim#17514

600cd88cdf

Co-authored-by: Luca Saccarola <github.e41mv@aleeas.com>
2025-09-13 13:18:24 +09:00
Jaehwang Jung
db423ccf27 vim-patch:1319009: runtime(netrw): get rid of s:Strlen() and use strdisplaywidth()
closes: vim/vim#17498

1319009d59

Co-authored-by: Luca Saccarola <github.e41mv@aleeas.com>
2025-09-13 13:18:24 +09:00
Jaehwang Jung
2a3d985ce4 vim-patch:09a62e6: runtime(netrw): cleanup Decho related comments
closes: vim/vim#17465

09a62e6f64

Co-authored-by: Luca Saccarola <github.e41mv@aleeas.com>
2025-09-13 13:18:24 +09:00
Jaehwang Jung
be4c05a485 vim-patch:d1a975a: runtime(netrw): upstream snapshot of v181
closes: vim/vim#17461

d1a975ae64

Co-authored-by: Luca Saccarola <github.e41mv@aleeas.com>
2025-09-13 13:18:24 +09:00
Jaehwang Jung
4d8b2be77e vim-patch:839fd94: runtime(netrw): remove deprecated functions
closes: vim/vim#17124

839fd94265

Co-authored-by: Luca Saccarola <github.e41mv@aleeas.com>
2025-09-13 13:18:24 +09:00
Jaehwang Jung
fb9457c23b vim-patch:d623773: runtime(netrw): upstream snapshot of v180
relevant commits:
- fix(gvim): don't set previous jump
- don't overwrite copy, copydir, mkdir and move command options
- fix: correctly name deprecate function
- refactor: remove s:NetrwBufRemover
- refactor: s:NetrwDelete -> netrw#fs#Remove
- defaults!: remove g:netrw_use_errorwindow

fixes: vim/vim#17114
closes: vim/vim#17123

d62377386c

Co-authored-by: Luca Saccarola <github.e41mv@aleeas.com>
2025-09-13 13:18:19 +09:00
Jaehwang Jung
02a33a449e vim-patch:29d596c: runtime(netrw): upstream snapshot of v179
closes: vim/vim#16787

29d596c80a

Co-authored-by: Luca Saccarola <github.e41mv@aleeas.com>
2025-09-13 13:15:48 +09:00
Jaehwang Jung
a6412b3d53 vim-patch:da53af5: runtime(netrw): correctly handle shellslash variable
closes: vim/vim#16758

da53af57a7

Co-authored-by: Luca Saccarola <github.e41mv@aleeas.com>
2025-09-13 13:15:48 +09:00
Jaehwang Jung
192839a328 vim-patch:5b97947: runtime(netrw): runtime(netrw): upstream snapshot of v178
relevant commits:
- refactor: netrw#own#Deprecate -> netrw#msg#Deprecate
- refactor: netrw#own#PathJoin -> netrw#fs#PathJoin
- fix: typos
- refactor: netrw#own#Open -> netrw#os#Open
- deprecate!: netrw#WinPath
- refactor: netrw#WinPath -> netrw#fs module
- refactor: s:ShellEscape -> netrw#os module
- refactor: s:NetrwExe -> netrw#os module
- refactor: s:NetrwGlob -> netrw#fs module
- refactor: s:NetrwGetcwd -> netrw#fs module
- refactor: s:NetrwFullPath -> netrw#fs module
- refactor: s:ComposePath -> netrw#fs module

closes: vim/vim#16718

5b97947bbd

Co-authored-by: Luca Saccarola <github.e41mv@aleeas.com>
2025-09-13 13:15:48 +09:00
Jaehwang Jung
66c81010fd vim-patch:ee1a24b: runtime(netrw): fix s:NetrwHome() regression
If $MYVIMDIR is unset netrw creates a directory called '$MYVIMDIR' in
the current directory

fixes: vim/vim#16609

ee1a24b21d

Co-authored-by: Luca Saccarola <github.e41mv@aleeas.com>
2025-09-13 13:15:48 +09:00
Jaehwang Jung
dcb5e7c88f vim-patch:73d8222: runtime(netrw): upstream snapshot of v177
relevant commits:
- defaults!: use 'suffixes' for 'g:netrw_sort_sequence'
- refactor: remove associated buffer when deliting a file
- refactor: s:NetrwLocalRm
- refactor: s:NetrwDelete
- refactor: s:NetrwLocalRmFile
- feat: use vim.notify on neovim
- fix: prefer v:lua instead of luaeval for vim.deprecate
- chore: remove old batteries

closes: vim/vim#16638

73d8222b31

Co-authored-by: Luca Saccarola <github.e41mv@aleeas.com>
2025-09-13 13:15:48 +09:00
Jaehwang Jung
98e51d2e0d vim-patch:6d6ec2e: runtime(netrw): correct wrong version check
The version check introduced with commit edd4ac3e8 has a logic error.
Also it should only trigger when trying to use the netrw plugin and not
always.

fixes: vim/vim#16541

6d6ec2ee05

Co-authored-by: Christian Brabandt <cb@256bit.org>
2025-09-13 13:15:48 +09:00
Jaehwang Jung
90018d2b36 vim-patch:ec961b0: runtime(netrw): upstream snapshot of v176
relevant commits:
- deprecate!: netrw#Launch, netrw#Open and gx mappings
- refactor: move some utility functions in a private file
- feat: add function to deprecate features
- refactor!: remove NetrwClean command and function
- refactor: use appropriate directories to store temporary files
- refactor: better way to call vim.ui.open
- refactor(Open): prefer lua wrapper function instead of cmdline
- refactor!: drop vim 7 checks
- refactor: use vim.ui.open when using neovim
- refactor: remove s:CheckIfKde
- refactor: balloon functionality
- refactor!: remove netrw#Access function

closes: vim/vim#16519

ec961b05dc

Co-authored-by: Luca Saccarola <github.e41mv@aleeas.com>
2025-09-13 13:15:48 +09:00
Jaehwang Jung
bf7d20bb1d vim-patch:2328a39: runtime(netrw): do not double escape Vim special characters
This double escaping was likely introduced because it was the only way
to make :Open work with hashes/percent signs despite shellescape(..., 1)
supposedly taking care of it, but then breaks the gx mapping
on MSYS2 as reported at [0]

Since special characters in the URL following :Open can be escaped,
whereas gx simply breaks and is more common, no longer double escape

[0]: https://github.com/vim/vim/issues/16252

fixes: vim/vim#16252
closes: vim/vim#16265

2328a39a54

Co-authored-by: Konfekt <Konfekt@users.noreply.github.com>
2025-09-13 13:15:48 +09:00
zeertzjq
c7a9404019 vim-patch:becf184: runtime(misc): removing saccarosium from maintainer list (#35740)
closes: vim/vim#17848

becf1844e0

Co-authored-by: Luca Saccarola <github.e41mv@aleeas.com>
2025-09-13 01:18:18 +00:00
zeertzjq
03c953008c vim-patch:32d6bd6: runtime(doc): remove dead links (#35297)
related: vim/vim#17879

32d6bd6df2

N/A patch:
vim-patch:8b18345: runtime(doc): Fix 2 minor issues after 32d6bd6df

Co-authored-by: Damien Lejay <damien@lejay.be>
2025-08-11 00:04:30 +00:00
zeertzjq
e12bfb4c70 vim-patch:54fb7ba: runtime(doc): remove mentioning of netrwSettings.vim (#35209)
closes: vim/vim#17925

54fb7ba256

Co-authored-by: Lane East <laneast@laneast.com>
2025-08-07 13:30:38 +00:00
Tom Ampuero
7cd5356a6f feat(net): vim.net.request(), :edit [url] #34140
Problem:
Nvim depends on netrw to download/request URL contents.

Solution:
- Add `vim.net.request()` as a thin curl wrapper:
  - Basic GET with --silent, --show-error, --fail, --location, --retry
  - Optional `opts.outpath` to save to a file
  - Operates asynchronously. Pass an `on_response` handler to get the result.
- Add integ tests (requires NVIM_TEST_INTEG to be set) to test success
  and 404 failure.
- Health check for missing `curl`.
- Handle `:edit https://…` using `vim.net.request()`.

API Usage:
1. Asynchronous request:

    vim.net.request('https://httpbingo.org/get', { retry = 2 }, function(err, response)
      if err then
        print('Fetch failed:', err)
      else
        print('Got body of length:', #response.body)
      end
    end)

2. Download to file:

    vim.net.request('https://httpbingo.org/get', { outpath = 'out_async.txt' }, function(err)
      if err then print('Error:', err) end
    end)

3. Remote :edit integration (in runtime/plugin/net.lua) fetches into buffer:

    :edit https://httpbingo.org/get
2025-07-13 13:43:11 -07:00
zeertzjq
db7c2acbc6 vim-patch:9.1.1532: termdebug: not enough ways to configure breakpoints (#34851)
Problem:  termdebug: not enough ways to configure breakpoints
Solution: add the termdebug_config['signs'] config setting, rework the
          termdebug test cases (Dimitry Ishenko)

Allow to configure custom breakpoint signs so one can do something like
this:

```vim
let g:termdebug_config['signs'] = ['>1', '>2', '>3', '>4', '>5', '>6', '>7', '>8', '>9']
let g:termdebug_config['sign'] = '>>'
```

where the first 9 breakpoints will have their own signs and the rest
will be the same (>>).

While at it, rework the test for the termdebug plugin:

- Added test for g:termdebug_config['signs'].
- Added test for g:termdebug_config['sign'].
- Moved test for g:termdebug_config['sign_decimal'] into
  Test_termdebug_basic()

closes: vim/vim#17694

c4bca1de0b

Co-authored-by: Dimitry Ishenko <dimitry.ishenko@gmail.com>
2025-07-08 22:38:58 +00:00
Luca Saccarola
14d8d11671 vim-patch:ba47934: runtime(netrw): remove netrwSettings.vim (#34747)
relevant commits:
- distribution: remove NetrwSettings.vim

closes: vim/vim#17635

ba479348d4
2025-07-03 22:47:34 +00:00
zeertzjq
a167800f1c vim-patch:partial:fbe4a8f: runtime(doc): Fix notation of "Vim script" and "Vim9 script" (#33673)
closes: vim/vim#17213

fbe4a8f5c0

Cherry-pick Test_source_ignore_shebang() change from patch 9.0.0363.

Co-authored-by: Hirohito Higashi <h.east.727@gmail.com>
2025-04-27 22:06:16 +08:00
Christian Clason
8c81ed8678 feat(runtime): revert cfilter, ccomplete to legacy Vim
Problem: Transpiled Lua code from vim9script is not amenable to static
analysis, requiring manual cleanup or ignoring parts of our codebase.

Solution: Revert to pre-rewrite version of (low-impact) legacy plugins
and remove the vim9jit shim.
2025-04-22 11:03:05 +02:00
Luca Saccarola
4913b7895c vim-patch:c729d6d: runtime: decouple Open and Launch commands and gx mapping from netrw (#32506)
closes: vim/vim#16494
fixes: #vim/vim#16486

c729d6d154
2025-02-20 12:10:13 +00:00
dundargoc
198a952c13 build: add luals check
This automatically downloads and uses the correct luals binary for the
currently used system. `make luals` will run luals on all lua files in
`runtime`.

We download lua-language-server manually instead of relying on
contributors downloading it on their own (like with stylua) as
lua-language-server is updated frequently which may cause unnecessary
friction. Therefore, we download a pinned version of luals which we then
can manually bump when needed. This can be re-evaluated if luals becomes
more stable in the future.

Currently this is not run when using `make lint` since cmake style "file
caching" doesn't seem possible at the moment. This is because checking a
single file doesn't seem to work.

Work on https://github.com/neovim/neovim/issues/24563.
2025-02-09 18:10:54 +01:00
Christian Clason
4dc2e016da vim-patch:d402ba8: runtime(netrw): upstream snapshot of v175
Relevant commits:
- release: netrw v175
- fix: prevent netrw to load into the built-in terminal
- fix: restore correctly cpo settings
- fix(docs): mispelled original authors name
- chore: move viml files to new formatting standard

fixes: vim/vim#16463
closes: vim/vim#16465

d402ba81e2

Co-authored-by: Luca Saccarola <github.e41mv@aleeas.com>
2025-01-20 08:20:11 +01:00
Christian Clason
de83cc5842 fix(netrw): re-add missing comment marker in syntax file 2025-01-20 08:20:11 +01:00
Christian Clason
e962167245 vim-patch:9cfdabb: runtime(netrw): change netrw maintainer
Dr. Chip retired some time ago and is no longer maintaining the netrw
plugin. However as a runtime plugin distributed by Vim, it important to
maintain the netrw plugin in the future and fix bugs as they are
reported.

So, split out the netrw plugin as an additional package, however include
some stubs to make sure the plugin is still loaded by default and the
documentation is accessible as well.

closes: vim/vim#16368

9cfdabb074

Co-authored-by: Luca Saccarola <github.e41mv@aleeas.com>
2025-01-18 09:49:35 +01:00
Emilia Simmons
69aa33d890 fix(runtime): let matchit and matchparen skips fallback on treesitter captures
When treesitter is enabled, by default syntax groups are not defined, but these
groups are used to identify where to skip matches in matchit and matchparen.

This patch does three things:
1. If syntax is enabled regardless of treesitter (`vim.bo.syntax='on'`):
   Use original implementation.
2. If treesitter is enabled and syntax is not:
   Match the syntax groups (i.e. `comment\|string`) against treesitter captures
   to check for skipped groups.
3. Add an explicit treesitter syntax for marking captures to skip:
   matchit uses `b:match_skip` to determine what counts as skippable
   Where 's:comment\|string' uses a match of the named syntax groups against
   a regex match of comment\|string, 't:comment\|string' now uses vim regex
   to match against the names of the treesitter capture groups.
2025-01-04 20:11:43 +01:00
Justin M. Keyes
8ef41f5902 feat(jobs): jobstart(…,{term=true}), deprecate termopen() #31343
Problem:
`termopen` has long been a superficial wrapper around `jobstart`, and
has no real purpose. Also, `vim.system` and `nvim_open_term` presumably
will replace all features of `jobstart` and `termopen`, so centralizing
the logic will help with that.

Solution:
- Introduce `eval/deprecated.c`, where all deprecated eval funcs will live.
- Introduce "term" flag of `jobstart`.
- Deprecate `termopen`.
2024-12-19 07:07:04 -08:00
zeertzjq
3da8f4c7ee vim-patch:5e7f43b: runtime(termdebug): allow to use decimal signs (#31149)
closes: vim/vim#16011

5e7f43b6ac

Co-authored-by: Ella Moss <ella.moss@utah.edu>
Co-authored-by: Christian Brabandt <cb@256bit.org>
2024-11-10 09:24:27 +08:00
Christian Clason
e1d48d5cf2 vim-patch:5753d99: runtime(nohlsearch): add missing loaded_hlsearch guard
related: vim/vim#15039
closes: vim/vim#15402

5753d99ff6

Co-authored-by: Maxim Kim <habamax@gmail.com>
2024-07-31 23:06:28 +02:00
zeertzjq
0b710c8e55 vim-patch:9.1.0599: Termdebug: still get E1023 when specifying arguments (#29794)
Problem:  Termdebug: still get E1023 when specifying arguments and using
          a prompt buffer.
Solution: Use empty() instead of len().  Add a test.  Fix wrong order of
          arguments to assert_equal() in Test_termdebug_basic().
          (zeertzjq)

closes: vim/vim#15288

aef6179bcf
2024-07-19 03:48:13 +00:00
zeertzjq
be7b577453 vim-patch:27f5334: runtime(termdebug): quote filename arguments using double quotes
closes: vim/vim#15270

27f53346a3

Co-authored-by: Ubaldo Tiberi <ubaldo.tiberi@google.com>
2024-07-18 13:28:12 +08:00
zeertzjq
8ce85d5fc7 vim-patch:c3837a4: runtime(termdebug): fix a few issues
Fix a few minor issues:
1. filename with whitespaces issue should be fixed now, fixes: vim/vim#12357
2. ":Termdebug args" should work now, fixes: vim/vim#15254

closes: vim/vim#15261

c3837a46ff

Omit the DeleteCommands() change as it isn't really an improvement.

Co-authored-by: Ubaldo Tiberi <ubaldo.tiberi@google.com>
2024-07-18 13:21:22 +08:00
zeertzjq
c909efb96f vim-patch:83d0028: runtime(termdebug): Use string interpolation instead of string concat
closes: vim/vim#14972

83d0028026

Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2024-07-18 11:50:32 +08:00
zeertzjq
978b0263f8 Merge pull request #29413 from jiangyinzuo/vim-patch-9.1.0497
vim-patch:partial:9.1.{0497,0501}: termdebug can be further improved
2024-06-20 12:29:47 +08:00
Christian Clason
38a1d41ac0 vim-patch:aeca717: runtime(nohlsearch): simplify mapping
Use <cmd> instead of <expr> with execute(...)[-1]

closes: vim/vim#15047

aeca7176f3

Co-authored-by: Maxim Kim <habamax@gmail.com>
2024-06-19 22:50:54 +02:00