Commit Graph

15506 Commits

Author SHA1 Message Date
Raphael
ad34ab38db fix: format 2023-01-09 14:22:10 +08:00
Raphael
1f18c27404 fix(ui): convert title_pos string in nvim_win_get_config 2023-01-09 13:57:46 +08:00
zeertzjq
a174f4e53f vim-patch:9.0.1158: code is indented more than necessary (#21697)
Problem:    Code is indented more than necessary.
Solution:   Use an early return where it makes sense. (Yegappan Lakshmanan,
            closes vim/vim#11787)

7f8b2559a3

Omit reset_last_used_map(): only used in Vim9 script.

Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-01-09 07:16:36 +08:00
dundargoc
50687e60ae build: remove workaround for ancient clang versions
We don't need to support this as it's only required when using
AddressSanitizer, meaning it only affects developers.
2023-01-08 11:00:16 +01:00
Justin M. Keyes
e17430c1cd feat(lua): store "nvim -l" scriptname in _G.arg[0] 2023-01-07 03:03:38 +01:00
zeertzjq
1c6be5e5e6 fix(coverity/433537): don't call kv_concat_len() when read_size is 0 (#21664)
fix(coverity): don't call kv_concat_len() when read_size is 0
2023-01-07 07:50:48 +08:00
bfredl
b303ab9a7d fix(tui): do not invoke loop recursively for pad()
fixes #21610
2023-01-06 11:01:02 +01:00
Justin M. Keyes
628b717022 refactor: extract code to open stdin for reading 2023-01-05 17:44:12 +01:00
Justin M. Keyes
7089f33144 refactor(lua): move _G.arg init to nlua_init() 2023-01-05 17:10:02 +01:00
Justin M. Keyes
e8ab218716 feat(message): avoid spam on failed os_msg
also de-dupe the code
2023-01-05 17:10:02 +01:00
Justin M. Keyes
f43de742e8 feat(lua): execute stdin ("-") as Lua 2023-01-05 17:10:02 +01:00
Justin M. Keyes
adef308a59 feat(lua): exit 1 on Lua "-l" script error 2023-01-05 17:10:02 +01:00
Justin M. Keyes
45549f031e feat(lua): send "--" literally to Lua "-l" script
Problem:
When "-l" is followed by "--", we stop sending args to the Lua script
and treat "--" in the usual way. This was for flexibility but didn't
have a strong use-case, and has these problems:
- prevents Lua "-l" scripts from handling "--" in their own way.
- complicates the startup logic (must call nlua_init before command_line_scan)

Solution:
Don't treat "--" specially if it follows "-l".
2023-01-05 17:10:02 +01:00
Justin M. Keyes
7c94bcd2d7 feat(lua)!: execute Lua with "nvim -l"
Problem:
Nvim has Lua but the "nvim" CLI can't easily be used to execute Lua
scripts, especially scripts that take arguments or produce output.

Solution:
- support "nvim -l [args...]" for running scripts. closes #15749
- exit without +q
- remove lua2dox_filter
- remove Doxyfile. This wasn't used anyway, because the doxygen config
  is inlined in gen_vimdoc.py (`Doxyfile` variable).
- use "nvim -l" in docs-gen CI job

Examples:

    $ nvim -l scripts/lua2dox.lua --help
    Lua2DoX (0.2 20130128)
    ...

    $ echo "print(vim.inspect(_G.arg))" | nvim -l - --arg1 --arg2
    $ echo 'print(vim.inspect(vim.api.nvim_buf_get_text(1,0,0,-1,-1,{})))' | nvim +"put ='text'" -l -

TODO?
  -e executes Lua code
  -l loads a module
  -i enters REPL _after running the other arguments_.
2023-01-05 17:10:02 +01:00
bfredl
19591e9918 fix(ui): fix fragile UI_CALL macro invocation (#21656)
Fixup #21605

Depending on the phase of the moon, UI_CALL expanding UI_LOG expanding the default value of entered_free_all_mem might or might not work.
2023-01-05 13:31:47 +01:00
bfredl
47ba78f89a refactor(ui): devirtualize the ui layer
- The defined interface for the UI is only the RPC protocol. The original
  UI interface as an array of function pointers fill no function.
- On the server, all the UI:s are all RPC channels.
  - ui.c is only used on the server.
  - The compositor is a preprocessing step for single-grid UI:s
- on the client, ui_client and tui talk directly to each other
  - we still do module separation, as ui_client.c could form the basis
    of a libnvim client module later.

Items for later PR:s
- vim.ui_attach is still an unhappy child, reconsider based on plugin experience.
- the flags in ui_events.in.h are still a mess. Can be simplified now.
- UX for remote attachment needs more work.
- startup for client can be simplified further (think of the millisecs we can save)
2023-01-05 09:48:26 +01:00
zeertzjq
ae64772a88 fix(diff): avoid restoring invalid 'foldcolumn' value (#21650)
Use "0" for 'foldcolumn' when w_p_fdc_save is empty, like how
"manual" is used for 'foldmethod' when w_p_fdm_save is empty.
2023-01-05 07:12:02 +08:00
zeertzjq
89232b8b48 fix(tui): make a copy of data->params before unibi_format() (#21643)
Problem:    When unibi_format() modifies params and data->buf overflows,
            unibi_format() is called again, causing the params to be
            modified twice. This can happen for escapes sequences that
            use the %i terminfo format specifier (e.g. cursor_address),
            which makes unibi_format() increase the param by 1.
Solution:   Make a copy of data->params before calling unibi_format().
2023-01-05 00:25:25 +08:00
dundargoc
936e191fef docs: fix typos (#21427)
Co-authored-by: Gustavo Sampaio <gbritosampaio@gmail.com>
Co-authored-by: C.D. MacEachern <craig.daniel.maceachern@gmail.com>
Co-authored-by: Sean Dewar <seandewar@users.noreply.github.com>
Co-authored-by: Tomas Nemec <nemi@skaut.cz>
2023-01-04 07:38:48 +08:00
zeertzjq
5529b07316 fix(clipboard): show provider warning when not during batch changes #21451
It is strange that Ex commands that explicitly interact with the
clipboard show provider warning, but Normal mode commands do not.
2023-01-03 15:17:54 -08:00
Gregory Anders
d56c603caf Merge pull request #21633 from gpanders/editorconfig
Builtin EditorConfig support
2023-01-03 11:38:20 -07:00
bfredl
eb702273c4 Merge pull request #21631 from bfredl/request_memory
refactor(api): do not allocate temporaries for internal events
2023-01-03 18:57:55 +01:00
Gregory Anders
d6510eec4f feat(editorconfig): add editorconfig syntax file
This is intentionally _not_ copied from Vim because our syntax file
makes use of Lua to dynamically generate a list of valid EditorConfig
properties. This requires the builtin editorconfig module, which Vim
does not have.
2023-01-03 10:28:55 -07:00
bfredl
b2295ac4ec refactor(api): do not allocate temporaries for internal events 2023-01-03 17:31:54 +01:00
Justin M. Keyes
5e9508c702 Merge #21580 cmdline issues with cmdheight=0 2023-01-03 11:02:32 -05:00
zeertzjq
a3c92f6b6c vim-patch:9.0.1137: some conditions are always false (#21628)
Problem:    Some conditions are always false.
Solution:   Remove the useless conditions. (closes vim/vim#11776)

ea720aea85
2023-01-03 19:22:32 +08:00
Lewis Russell
5841a97500 feat!: remove hardcopy
Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
2023-01-03 10:07:43 +00:00
zeertzjq
c3d8665851 fix(exit): the TUI should not ui_flush() itself (#21625) 2023-01-03 17:21:42 +08:00
zeertzjq
4dd793a256 vim-patch:9.0.1132: code is indented more than needed (#21626)
Problem:    Code is indented more than needed.
Solution:   Use an early return to reduce indentation. (Yegappan Lakshmanan,
            closes vim/vim#11769)

dc4daa3a39

Omit expand_autoload_callback(): only applies to Vim9 script.

Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2023-01-03 14:55:00 +08:00
Justin M. Keyes
a283a99165 refactor: eliminate os_unix.c #21621 2023-01-02 14:56:17 -08:00
zeertzjq
5c6f2122ad vim-patch:9.0.1129: sporadic Test_range() failure (#21619)
Problem:    Sporadic Test_range() failure.
Solution:   Clear typeahead.  Move to a separate function. (issue vim/vim#22771)

7bdcba08bb

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2023-01-02 21:03:40 +08:00
zeertzjq
5322bf99e6 vim-patch:8.2.0711: temp directory might be cleared (#21614)
Problem:    With a long running Vim the temp directory might be cleared on
            some systems.
Solution:   Lock the temp directory. (closes vim/vim#6044)

b2d0e51366
2023-01-02 20:37:13 +08:00
zeertzjq
c590641feb fix(tui): do not set ui_client_termname if it is already set (#21607)
It is fine to initialize ui_client_termname to NULL as it is only used
after tui_start().
2023-01-01 23:18:19 +08:00
Christian Clason
9cc37e057a docs(api): fix treesitter parsing errors 2023-01-01 15:05:21 +01:00
zeertzjq
83e8723864 Merge pull request #21597 from gi1242/tex-ft-detection
fix(filetype): make .tex filetype detection match Vim
2023-01-01 21:45:12 +08:00
Christian Clason
1b3e6e7594 vim-patch:9.0.1120: tex filetype detection not sufficiently tested
Problem:    Tex filetype detection not sufficiently tested.
Solution:   Add more test cases for "tex" detection. (Jonas Strittmatter,
            closes vim/vim#11765)

c55e8f2c6f

Co-authored-by: smjonas <jonas.strittmatter@gmx.de>
2022-12-31 16:12:09 -05:00
bfredl
cce736218f Merge pull request #18375 from bfredl/tui_rework
feat(ui): refactor TUI from thread to separate process
2022-12-31 14:23:24 +01:00
bfredl
9fdcbbb406 feat(tui): graduate the +tui feature
This was previously disabled due to build issues on windows.
Any reasonable platform can now be expected to have the necessary
interfaces to build and run the TUI subsystem.

Runtime quality issues of using the TUI (on any new platform) are not
relevant here. Just run Nvim in an external UI instead of the TUI as always.
2022-12-31 13:25:26 +01:00
bfredl
43e8ec92de fix(tui): more work in the TUI 2022-12-31 13:25:26 +01:00
hlpr98
2448816956 feat(tui): run TUI as external process 2022-12-31 10:43:28 +01:00
Luuk van Baal
935e538b63 fix: issues with command line if ui elements are externalized
Resolve https://github.com/neovim/neovim/issues/20888 and handle side
effects for setting 'cmdheight' to zero.
2022-12-31 00:50:39 +01:00
Luuk van Baal
b102bf22c0 fix(ui): allow resize commands to set 'cmdheight' to 0
Resolve https://github.com/neovim/neovim/issues/21558
2022-12-31 00:30:53 +01:00
zeertzjq
99cf111289 vim-patch:9.0.1115: code is indented more than needed (#21598)
Problem:    Code is indented more than needed.
Solution:   Use an early return to reduce indenting. (Yegappan Lakshmanan,
            closes vim/vim#11758)

ed0c1d5d4b

Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
2022-12-31 06:41:23 +08:00
bfredl
09370eae77 refactor(sleep): simplify rube goldberg implementation of :sleep
As neovim does have event handling, we are checking for CTRL-C
all the time, not once per second.

Also, do_sleep() reimplements the same loop as
LOOP_PROCESS_EVENTS_UNTIL() already contains internally. Fix the latter
to use the right integer type, so we do not need the extra indirection.
2022-12-30 19:56:11 +01:00
zeertzjq
83472b3808 vim-patch:8.2.{3773,3774}
vim-patch:8.2.3773: wrong window size when a modeline changes 'columns'

Problem:    Wrong window size when a modeline changes 'columns' and there is
            more than one tabpage. (Michael Soyka)
Solution:   Adjust the frames of all tabpages. (closes vim/vim#9315)

8a7374f8c4

vim-patch:8.2.3774: test for command line height fails

Problem:    Test for command line height fails.
Solution:   Use another way to handle window size change.

b711814cb6

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-12-30 14:45:28 +08:00
Oliver Marriott
e6cae44cbf feat(highlight): add DiagnosticOk (and associated) highlight groups (#21286)
The existing groups, Error, Hint, Info, Warn cover many use cases, but
neglect the occasion where a diagnostic message should communicate a
non-informative (not a Hint or Info) event. DiagnosticOk covers this
with a generic green colorscheme.
2022-12-28 09:01:40 -07:00
Christian Clason
3b9b43063c vim-patch:9.0.1106: not all postfix files are recognized (#21568)
Problem:    Not all postfix files are recognized.
Solution:   Recognize main.cf.proto files. (closes vim/vim#11732)

09ce0b8e11

Co-authored-by: KodeToad <3880336+KodeToad@users.noreply.github.com>
2022-12-28 11:42:02 +01:00
zeertzjq
bf459641a8 refactor(f_has): remove wrong comment (#21561)
Only one of "fork" and "system" should be defined.
Also change the line above "win32" to match Vim.
2022-12-28 10:05:03 +08:00
zeertzjq
45d9735aae vim-patch:9.0.1100: a hashtab with many removed items is not cleaned up
Problem:    A hashtab with many removed items is not cleaned up.
Solution:   Re-hash a hashtab even when the size didn't change if too many
            items were removed.

d0883faac6

N/A patches for version.c:

vim-patch:9.0.1099: trying to resize a hashtab may cause a problem

Problem:    Trying to resize a hashtab may cause a problem.
Solution:   Do not try to resize a hashtab before adding an item.

81b7ecc5cb

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-12-27 19:01:09 +08:00
zeertzjq
9bab4b72ae vim-patch:9.0.1097: tests are failing
Problem:    Tests are failing.
Solution:   Do clean up a hashtab when at the initial size.

b3d614369f

Co-authored-by: Bram Moolenaar <Bram@vim.org>
2022-12-27 18:56:20 +08:00