aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* | fix(statuscolumn): fix crashes and clang/PVS warnings (#21725)zeertzjq2023-01-10
| |
* | feat(float): open float relative to mouse #21531Sebastian Lyng Johansen2023-01-10
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: No easy way to position a LSP hover window relative to mouse. Solution: Introduce another option to the `relative` key in `nvim_open_win()`. With this PR it should be possible to override the handler and do something similar to this https://github.com/neovim/neovim/pull/19481#issuecomment-1193248674 to have hover information displayed from the mouse. Test case: ```lua local util = require('vim.lsp.util') local function make_position_param(window, offset_encoding) window = window or 0 local buf = vim.api.nvim_win_get_buf(window) local row, col local mouse = vim.fn.getmousepos() row = mouse.line col = mouse.column offset_encoding = offset_encoding or util._get_offset_encoding(buf) row = row - 1 local line = vim.api.nvim_buf_get_lines(buf, row, row + 1, true)[1] if not line then return { line = 0, character = 0 } end if #line < col then return { line = 0, character = 0 } end col = util._str_utfindex_enc(line, col, offset_encoding) return { line = row, character = col } end local make_params = function(window, offset_encoding) window = window or 0 local buf = vim.api.nvim_win_get_buf(window) offset_encoding = offset_encoding or util._get_offset_encoding(buf) return { textDocument = util.make_text_document_params(buf), position = make_position_param(window, offset_encoding), } end local hover_timer = nil vim.o.mousemoveevent = true vim.keymap.set({ '', 'i' }, '<MouseMove>', function() if hover_timer then hover_timer:close() end hover_timer = vim.defer_fn(function() hover_timer = nil local params = make_params() vim.lsp.buf_request( 0, 'textDocument/hover', params, vim.lsp.with(vim.lsp.handlers.hover, { silent = true, focusable = false, relative = 'mouse', }) ) end, 500) return '<MouseMove>' end, { expr = true }) ```
* fix(ui): set stc to empty in floatwin with minimal style (#21720)Raphael2023-01-10
| | | fix(ui): set stc to emtpy in floatwin with minimal style
* test(statuscolumn): add more tests for wrapped lines (#21718)zeertzjq2023-01-10
| | | | | | test(statuscolumn): add more tests more wrapped lines Also initialize a "relnum" variable to suppress a Coverity warning. The uninitialized value wasn't actually used by build_statuscol_str().
* refactor: replace char_u with char 19 (#21241)dundargoc2023-01-10
| | | | | * refactor: replace char_u with char Work on https://github.com/neovim/neovim/issues/459
* docs: add 'statuscolumn' docstrings (#21717)luukvbaal2023-01-10
|
* vim-patch:partial:9.0.1166: code is indented more than necessary (#21716)zeertzjq2023-01-10
| | | | | | | | | | | | | | | | | | | | | | Problem: Code is indented more than necessary. Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, closes vim/vim#11792) https://github.com/vim/vim/commit/1cfb14aa972ccf3235ac67f07b7db1175b7c5384 Partial port as some highlight.c changes depend on previous patches. Cherry-pick fname_match() change from patch 8.2.4959. Omit internal_func_check_arg_types(): only used for Vim9 script. N/A patches for version.c: vim-patch:9.0.1167: EditorConfig files do not have their own filetype Problem: EditorConfig files do not have their own filetype. Solution: Add the "editorconfig" filetype. (Gregory Anders, closes vim/vim#11779) https://github.com/vim/vim/commit/d41262ed06564cef98a3800e2928e6e0db91abbf Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
* feat(ui): add 'statuscolumn' optionluukvbaal2023-01-09
| | | | | | | | Problem: Unable to customize the column next to a window ('gutter'). Solution: Add 'statuscolumn' option that follows the 'statusline' syntax, allowing to customize the status column. Also supporting the %@ click execute function label. Adds new items @C and @s which will print the fold and sign columns. Line numbers and signs can be clicked, highlighted, aligned, transformed, margined etc.
* refactor: replace char_u with char 18 (#21237)dundargoc2023-01-09
| | | | | refactor: replace char_u with char Work on https://github.com/neovim/neovim/issues/459
* Merge pull request #21704 from bfredl/nofreebfredl2023-01-09
|\ | | | | fix(rpc): don't free args on error in rpc_send_event
| * fix(rpc): don't free args on error in rpc_send_eventbfredl2023-01-09
| | | | | | | | | | fixup #21631 fixes #21690
* | refactor: replace char_u with char 17 - remove STRLCPY (#21235)dundargoc2023-01-09
|/ | | | | refactor: replace char_u with char Work on https://github.com/neovim/neovim/issues/459
* Merge pull request #21702 from glepnir/fix_2bfredl2023-01-09
|\ | | | | fix(api): convert title_pos string in nvim_win_get_config
| * fix: use enum typeRaphael2023-01-09
| |
| * fix: formatRaphael2023-01-09
| |
| * fix(ui): convert title_pos string in nvim_win_get_configRaphael2023-01-09
| |
* | Merge pull request #21675 from bfredl/nonstdiobfredl2023-01-09
|\ \ | | | | | | fix(embed): handle stdio in server properly
| * | fix(embed): handle stdio in server properlybfredl2023-01-09
| |/ | | | | | | | | Rename stdin/stdout in the server, so that RPC data won't get corrupted. This also restores the use of stderr to write directly to the terminal.
* / refactor: replace char_u with chardundargoc2023-01-09
|/ | | | Work on https://github.com/neovim/neovim/issues/459
* vim-patch:9.0.1158: code is indented more than necessary (#21697)zeertzjq2023-01-09
| | | | | | | | | | | Problem: Code is indented more than necessary. Solution: Use an early return where it makes sense. (Yegappan Lakshmanan, closes vim/vim#11787) https://github.com/vim/vim/commit/7f8b2559a30e2e2a443c35b28e94c6b45ba7ae04 Omit reset_last_used_map(): only used in Vim9 script. Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
* build: remove workaround for ancient clang versionsdundargoc2023-01-08
| | | | | We don't need to support this as it's only required when using AddressSanitizer, meaning it only affects developers.
* feat(lua): store "nvim -l" scriptname in _G.arg[0]Justin M. Keyes2023-01-07
|
* fix(coverity/433537): don't call kv_concat_len() when read_size is 0 (#21664)zeertzjq2023-01-07
| | | fix(coverity): don't call kv_concat_len() when read_size is 0
* fix(tui): do not invoke loop recursively for pad()bfredl2023-01-06
| | | | fixes #21610
* refactor: extract code to open stdin for readingJustin M. Keyes2023-01-05
|
* refactor(lua): move _G.arg init to nlua_init()Justin M. Keyes2023-01-05
|
* feat(message): avoid spam on failed os_msgJustin M. Keyes2023-01-05
| | | | also de-dupe the code
* feat(lua): execute stdin ("-") as LuaJustin M. Keyes2023-01-05
|
* feat(lua): exit 1 on Lua "-l" script errorJustin M. Keyes2023-01-05
|
* feat(lua): send "--" literally to Lua "-l" scriptJustin M. Keyes2023-01-05
| | | | | | | | | | | | 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".
* feat(lua)!: execute Lua with "nvim -l"Justin M. Keyes2023-01-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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_.
* fix(ui): fix fragile UI_CALL macro invocation (#21656)bfredl2023-01-05
| | | | | | 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.
* refactor(ui): devirtualize the ui layerbfredl2023-01-05
| | | | | | | | | | | | | | | | | - 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)
* fix(diff): avoid restoring invalid 'foldcolumn' value (#21650)zeertzjq2023-01-05
| | | | 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.
* fix(tui): make a copy of data->params before unibi_format() (#21643)zeertzjq2023-01-05
| | | | | | | | 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().
* docs: fix typos (#21427)dundargoc2023-01-04
| | | | | | 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>
* fix(clipboard): show provider warning when not during batch changes #21451zeertzjq2023-01-03
| | | | It is strange that Ex commands that explicitly interact with the clipboard show provider warning, but Normal mode commands do not.
* Merge pull request #21633 from gpanders/editorconfigGregory Anders2023-01-03
|\ | | | | Builtin EditorConfig support
| * feat(editorconfig): add editorconfig syntax fileGregory Anders2023-01-03
| | | | | | | | | | | | | | 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.
* | Merge pull request #21631 from bfredl/request_memorybfredl2023-01-03
|\ \ | | | | | | refactor(api): do not allocate temporaries for internal events
| * | refactor(api): do not allocate temporaries for internal eventsbfredl2023-01-03
| |/
* | Merge #21580 cmdline issues with cmdheight=0Justin M. Keyes2023-01-03
|\ \ | |/ |/|
| * fix: issues with command line if ui elements are externalizedLuuk van Baal2022-12-31
| | | | | | | | | | Resolve https://github.com/neovim/neovim/issues/20888 and handle side effects for setting 'cmdheight' to zero.
| * fix(ui): allow resize commands to set 'cmdheight' to 0Luuk van Baal2022-12-31
| | | | | | | | Resolve https://github.com/neovim/neovim/issues/21558
* | vim-patch:9.0.1137: some conditions are always false (#21628)zeertzjq2023-01-03
| | | | | | | | | | | | Problem: Some conditions are always false. Solution: Remove the useless conditions. (closes vim/vim#11776) https://github.com/vim/vim/commit/ea720aea851e645f4c8ec3b20afb27c7ca38184c
* | feat!: remove hardcopyLewis Russell2023-01-03
| | | | | | Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
* | fix(exit): the TUI should not ui_flush() itself (#21625)zeertzjq2023-01-03
| |
* | vim-patch:9.0.1132: code is indented more than needed (#21626)zeertzjq2023-01-03
| | | | | | | | | | | | | | | | | | | | | | Problem: Code is indented more than needed. Solution: Use an early return to reduce indentation. (Yegappan Lakshmanan, closes vim/vim#11769) https://github.com/vim/vim/commit/dc4daa3a3915fba11ac87d27977240d9a5e0d47d Omit expand_autoload_callback(): only applies to Vim9 script. Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
* | refactor: eliminate os_unix.c #21621Justin M. Keyes2023-01-02
| |
* | vim-patch:9.0.1129: sporadic Test_range() failure (#21619)zeertzjq2023-01-02
| | | | | | | | | | | | | | | | Problem: Sporadic Test_range() failure. Solution: Clear typeahead. Move to a separate function. (issue vim/vim#22771) https://github.com/vim/vim/commit/7bdcba08bb5e4c39093cdedee187177d705c7cb9 Co-authored-by: Bram Moolenaar <Bram@vim.org>