mirror of
https://github.com/neovim/neovim.git
synced 2024-12-23 20:55:18 -07:00
docs: misc (#28609)
Closes https://github.com/neovim/neovim/issues/28484. Closes https://github.com/neovim/neovim/issues/28719. Co-authored-by: Chris <crwebb85@gmail.com> Co-authored-by: Gregory Anders <greg@gpanders.com> Co-authored-by: Jake B <16889000+jakethedev@users.noreply.github.com> Co-authored-by: Jonathan Raines <jonathan.s.raines@gmail.com> Co-authored-by: Yi Ming <ofseed@foxmail.com> Co-authored-by: Zane Dufour <zane@znd4.me> Co-authored-by: zeertzjq <zeertzjq@outlook.com>
This commit is contained in:
parent
b83d5fabc6
commit
7acf39ddab
@ -36,7 +36,7 @@ Windows 8+ is required. Windows 7 or older is not supported.
|
|||||||
|
|
||||||
### [Chocolatey](https://chocolatey.org)
|
### [Chocolatey](https://chocolatey.org)
|
||||||
|
|
||||||
- **Release (v0.7):** `choco install neovim` (use -y for automatically skipping confirmation messages)
|
- **Latest Release:** `choco install neovim` (use -y for automatically skipping confirmation messages)
|
||||||
- **Development (pre-release):** `choco install neovim --pre`
|
- **Development (pre-release):** `choco install neovim --pre`
|
||||||
|
|
||||||
### [Scoop](https://scoop.sh/)
|
### [Scoop](https://scoop.sh/)
|
||||||
|
10
MAINTAIN.md
10
MAINTAIN.md
@ -22,7 +22,7 @@ In practice we haven't found a way to forecast more precisely than "next" and
|
|||||||
* Next feature-release (1.x.0)
|
* Next feature-release (1.x.0)
|
||||||
|
|
||||||
The forecasting problem might be solved with an explicit priority system (like
|
The forecasting problem might be solved with an explicit priority system (like
|
||||||
Bram's todo.txt). Meanwhile the Neovim priority system is defined by:
|
Vim's todo.txt). Meanwhile the Neovim priority system is defined by:
|
||||||
|
|
||||||
* PRs nearing completion.
|
* PRs nearing completion.
|
||||||
* Issue labels. E.g. the `has:plan` label increases the ticket's priority merely
|
* Issue labels. E.g. the `has:plan` label increases the ticket's priority merely
|
||||||
@ -57,8 +57,8 @@ has a major bug:
|
|||||||
|
|
||||||
### Release automation
|
### Release automation
|
||||||
|
|
||||||
Neovim automation includes a [backport bot](https://github.com/zeebe-io/backport-action).
|
Neovim automation includes a [backport bot](https://github.com/korthout/backport-action).
|
||||||
Trigger the action by labeling a PR with `backport release-X.Y`. See `.github/workflows/backport.yml`.
|
Trigger the action by labeling a PR with `ci:backport release-x.y`. See `.github/workflows/backport.yml`.
|
||||||
|
|
||||||
Deprecating and removing features
|
Deprecating and removing features
|
||||||
---------------------------------
|
---------------------------------
|
||||||
@ -74,7 +74,7 @@ When a (non-experimental) feature is slated to be removed it should:
|
|||||||
1. Be _soft_ deprecated in the _next_ release
|
1. Be _soft_ deprecated in the _next_ release
|
||||||
- Use of the deprecated feature will still work.
|
- Use of the deprecated feature will still work.
|
||||||
- This means deprecating via documentation and annotation (`@deprecated`).
|
- This means deprecating via documentation and annotation (`@deprecated`).
|
||||||
- Include a note in `news.txt` under `DEPRECATIONS`.
|
- Include a note in `deprecated.txt`.
|
||||||
- For Lua features, use `vim.deprecate()`. The specified version is the
|
- For Lua features, use `vim.deprecate()`. The specified version is the
|
||||||
current minor version + 2. For example, if the current version is
|
current minor version + 2. For example, if the current version is
|
||||||
`v0.10.0-dev-1957+gd676746c33` then use `0.12`.
|
`v0.10.0-dev-1957+gd676746c33` then use `0.12`.
|
||||||
@ -132,7 +132,7 @@ Some can be auto-bumped by `scripts/bump_deps.lua`.
|
|||||||
* [gettext](https://ftp.gnu.org/pub/gnu/gettext/)
|
* [gettext](https://ftp.gnu.org/pub/gnu/gettext/)
|
||||||
* [libiconv](https://ftp.gnu.org/pub/gnu/libiconv)
|
* [libiconv](https://ftp.gnu.org/pub/gnu/libiconv)
|
||||||
* [libuv](https://github.com/libuv/libuv)
|
* [libuv](https://github.com/libuv/libuv)
|
||||||
* [libvterm](http://www.leonerd.org.uk/code/libvterm/)
|
* [libvterm](https://www.leonerd.org.uk/code/libvterm/)
|
||||||
* Downloading from the original source is unreliable, so we use our [mirror](https://github.com/neovim/libvterm) instead.
|
* Downloading from the original source is unreliable, so we use our [mirror](https://github.com/neovim/libvterm) instead.
|
||||||
* [lua-compat](https://github.com/keplerproject/lua-compat-5.3)
|
* [lua-compat](https://github.com/keplerproject/lua-compat-5.3)
|
||||||
* [tree-sitter](https://github.com/tree-sitter/tree-sitter)
|
* [tree-sitter](https://github.com/tree-sitter/tree-sitter)
|
||||||
|
@ -281,10 +281,6 @@ gr{char} Replace the virtual characters under the cursor with
|
|||||||
that have a special meaning in Insert mode, such as
|
that have a special meaning in Insert mode, such as
|
||||||
most CTRL-keys, cannot be used.
|
most CTRL-keys, cannot be used.
|
||||||
|
|
||||||
*gr-default*
|
|
||||||
Mapped to |vim.lsp.buf.references()| by default.
|
|
||||||
|default-mappings|
|
|
||||||
|
|
||||||
*digraph-arg*
|
*digraph-arg*
|
||||||
The argument for Normal mode commands like |r| and |t| is a single character.
|
The argument for Normal mode commands like |r| and |t| is a single character.
|
||||||
When 'cpo' doesn't contain the 'D' flag, this character can also be entered
|
When 'cpo' doesn't contain the 'D' flag, this character can also be entered
|
||||||
|
@ -6,11 +6,11 @@
|
|||||||
==============================================================================
|
==============================================================================
|
||||||
EditorConfig integration *editorconfig*
|
EditorConfig integration *editorconfig*
|
||||||
|
|
||||||
Nvim supports EditorConfig. When a file is opened, Nvim searches all parent
|
Nvim supports EditorConfig. When a file is opened, after running |ftplugin|s
|
||||||
directories of that file for ".editorconfig" files, parses them, and applies
|
and |FileType| autocommands, Nvim searches all parent directories of that file
|
||||||
any properties that match the opened file. Think of it like 'modeline' for an
|
for ".editorconfig" files, parses them, and applies any properties that match
|
||||||
entire (recursive) directory. For more information see
|
the opened file. Think of it like 'modeline' for an entire (recursive)
|
||||||
https://editorconfig.org/.
|
directory. For more information see https://editorconfig.org/.
|
||||||
|
|
||||||
*g:editorconfig* *b:editorconfig*
|
*g:editorconfig* *b:editorconfig*
|
||||||
|
|
||||||
|
@ -29,13 +29,6 @@ Use the stable (release) https://github.com/neovim/neovim/releases/latest
|
|||||||
version for a more predictable experience.
|
version for a more predictable experience.
|
||||||
|
|
||||||
|
|
||||||
CAN I USE RUBY-BASED VIM PLUGINS (E.G. LUSTYEXPLORER)? ~
|
|
||||||
|
|
||||||
Yes, starting with Nvim 0.1.5 PR #4980
|
|
||||||
https://github.com/neovim/neovim/pull/4980 the legacy Vim `if_ruby` interface
|
|
||||||
is supported.
|
|
||||||
|
|
||||||
|
|
||||||
CAN I USE LUA-BASED VIM PLUGINS (E.G. NEOCOMPLETE)? ~
|
CAN I USE LUA-BASED VIM PLUGINS (E.G. NEOCOMPLETE)? ~
|
||||||
|
|
||||||
No. Starting with Nvim 0.2 PR #4411
|
No. Starting with Nvim 0.2 PR #4411
|
||||||
|
@ -694,8 +694,8 @@ buf_request_sync({bufnr}, {method}, {params}, {timeout_ms})
|
|||||||
milliseconds to wait for a result.
|
milliseconds to wait for a result.
|
||||||
|
|
||||||
Return (multiple): ~
|
Return (multiple): ~
|
||||||
(`table<integer, {err: lsp.ResponseError, result: any}>?`) result Map
|
(`table<integer, {error: lsp.ResponseError?, result: any}>?`) result
|
||||||
of client_id:request_result.
|
Map of client_id:request_result.
|
||||||
(`string?`) err On timeout, cancel, or error, `err` is a string
|
(`string?`) err On timeout, cancel, or error, `err` is a string
|
||||||
describing the failure reason, and `result` is nil.
|
describing the failure reason, and `result` is nil.
|
||||||
|
|
||||||
@ -1589,7 +1589,7 @@ save({lenses}, {bufnr}, {client_id}) *vim.lsp.codelens.save()*
|
|||||||
Lua module: vim.lsp.inlay_hint *lsp-inlay_hint*
|
Lua module: vim.lsp.inlay_hint *lsp-inlay_hint*
|
||||||
|
|
||||||
enable({enable}, {filter}) *vim.lsp.inlay_hint.enable()*
|
enable({enable}, {filter}) *vim.lsp.inlay_hint.enable()*
|
||||||
Enables or disables inlay hints for a buffer.
|
Enables or disables inlay hints for the {filter}ed scope.
|
||||||
|
|
||||||
To "toggle", pass the inverse of `is_enabled()`: >lua
|
To "toggle", pass the inverse of `is_enabled()`: >lua
|
||||||
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())
|
vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())
|
||||||
@ -1636,6 +1636,7 @@ get({filter}) *vim.lsp.inlay_hint.get()*
|
|||||||
• {inlay_hint} (`lsp.InlayHint`)
|
• {inlay_hint} (`lsp.InlayHint`)
|
||||||
|
|
||||||
is_enabled({filter}) *vim.lsp.inlay_hint.is_enabled()*
|
is_enabled({filter}) *vim.lsp.inlay_hint.is_enabled()*
|
||||||
|
Query whether inlay hint is enabled in the {filter}ed scope
|
||||||
|
|
||||||
Note: ~
|
Note: ~
|
||||||
• This API is pre-release (unstable).
|
• This API is pre-release (unstable).
|
||||||
|
@ -2673,7 +2673,6 @@ vim.filetype.add({filetypes}) *vim.filetype.add()*
|
|||||||
vim.filetype.add {
|
vim.filetype.add {
|
||||||
pattern = {
|
pattern = {
|
||||||
['.*'] = {
|
['.*'] = {
|
||||||
priority = -math.huge,
|
|
||||||
function(path, bufnr)
|
function(path, bufnr)
|
||||||
local content = vim.api.nvim_buf_get_lines(bufnr, 0, 1, false)[1] or ''
|
local content = vim.api.nvim_buf_get_lines(bufnr, 0, 1, false)[1] or ''
|
||||||
if vim.regex([[^#!.*\\<mine\\>]]):match_str(content) ~= nil then
|
if vim.regex([[^#!.*\\<mine\\>]]):match_str(content) ~= nil then
|
||||||
@ -2682,6 +2681,7 @@ vim.filetype.add({filetypes}) *vim.filetype.add()*
|
|||||||
return 'drawing'
|
return 'drawing'
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
|
{ priority = -math.huge },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@ -4005,7 +4005,8 @@ Iter:fold({init}, {f}) *Iter:fold()*
|
|||||||
-- Get the "maximum" item of an iterable.
|
-- Get the "maximum" item of an iterable.
|
||||||
vim.iter({ -99, -4, 3, 42, 0, 0, 7 })
|
vim.iter({ -99, -4, 3, 42, 0, 0, 7 })
|
||||||
:fold({}, function(acc, v)
|
:fold({}, function(acc, v)
|
||||||
acc.max = math.max(v, acc.max or v) return acc
|
acc.max = math.max(v, acc.max or v)
|
||||||
|
return acc
|
||||||
end) --> { max = 42 }
|
end) --> { max = 42 }
|
||||||
<
|
<
|
||||||
|
|
||||||
@ -4346,7 +4347,7 @@ vim.snippet.jump({direction}) *vim.snippet.jump()*
|
|||||||
|
|
||||||
You can use this function to navigate a snippet as follows: >lua
|
You can use this function to navigate a snippet as follows: >lua
|
||||||
vim.keymap.set({ 'i', 's' }, '<Tab>', function()
|
vim.keymap.set({ 'i', 's' }, '<Tab>', function()
|
||||||
if vim.snippet.jumpable(1) then
|
if vim.snippet.active({ direction = 1 }) then
|
||||||
return '<cmd>lua vim.snippet.jump(1)<cr>'
|
return '<cmd>lua vim.snippet.jump(1)<cr>'
|
||||||
else
|
else
|
||||||
return '<Tab>'
|
return '<Tab>'
|
||||||
|
@ -417,6 +417,7 @@ The following changes to existing APIs or features add new behavior.
|
|||||||
• 'shortmess' includes the "C" flag.
|
• 'shortmess' includes the "C" flag.
|
||||||
• 'grepprg' uses the -H and -I flags for grep by default,
|
• 'grepprg' uses the -H and -I flags for grep by default,
|
||||||
and defaults to using ripgrep if available.
|
and defaults to using ripgrep if available.
|
||||||
|
• "]d" and "[d" in Normal mode map to |vim.diagnostic.goto_next()| and
|
||||||
|vim.diagnostic.goto_prev()|, respectively. |]d-default| |[d-default|
|
|vim.diagnostic.goto_prev()|, respectively. |]d-default| |[d-default|
|
||||||
• <C-W>d (and <C-W><C-D>) map to |vim.diagnostic.open_float()|
|
• <C-W>d (and <C-W><C-D>) map to |vim.diagnostic.open_float()|
|
||||||
|CTRL-W_d-default|
|
|CTRL-W_d-default|
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
--- @brief
|
--- @brief
|
||||||
--- Nvim supports EditorConfig. When a file is opened, Nvim searches all parent
|
--- Nvim supports EditorConfig. When a file is opened, after running |ftplugin|s
|
||||||
--- directories of that file for ".editorconfig" files, parses them, and applies
|
--- and |FileType| autocommands, Nvim searches all parent directories of that file
|
||||||
--- any properties that match the opened file. Think of it like 'modeline' for an
|
--- for ".editorconfig" files, parses them, and applies any properties that match
|
||||||
--- entire (recursive) directory. For more information see
|
--- the opened file. Think of it like 'modeline' for an entire (recursive)
|
||||||
--- https://editorconfig.org/.
|
--- directory. For more information see https://editorconfig.org/.
|
||||||
---
|
|
||||||
|
|
||||||
--- @brief [g:editorconfig]() [b:editorconfig]()
|
--- @brief [g:editorconfig]() [b:editorconfig]()
|
||||||
---
|
---
|
||||||
|
@ -2312,7 +2312,6 @@ end
|
|||||||
--- vim.filetype.add {
|
--- vim.filetype.add {
|
||||||
--- pattern = {
|
--- pattern = {
|
||||||
--- ['.*'] = {
|
--- ['.*'] = {
|
||||||
--- priority = -math.huge,
|
|
||||||
--- function(path, bufnr)
|
--- function(path, bufnr)
|
||||||
--- local content = vim.api.nvim_buf_get_lines(bufnr, 0, 1, false)[1] or ''
|
--- local content = vim.api.nvim_buf_get_lines(bufnr, 0, 1, false)[1] or ''
|
||||||
--- if vim.regex([[^#!.*\\<mine\\>]]):match_str(content) ~= nil then
|
--- if vim.regex([[^#!.*\\<mine\\>]]):match_str(content) ~= nil then
|
||||||
@ -2321,6 +2320,7 @@ end
|
|||||||
--- return 'drawing'
|
--- return 'drawing'
|
||||||
--- end
|
--- end
|
||||||
--- end,
|
--- end,
|
||||||
|
--- { priority = -math.huge },
|
||||||
--- },
|
--- },
|
||||||
--- },
|
--- },
|
||||||
--- }
|
--- }
|
||||||
|
@ -466,7 +466,8 @@ end
|
|||||||
--- -- Get the "maximum" item of an iterable.
|
--- -- Get the "maximum" item of an iterable.
|
||||||
--- vim.iter({ -99, -4, 3, 42, 0, 0, 7 })
|
--- vim.iter({ -99, -4, 3, 42, 0, 0, 7 })
|
||||||
--- :fold({}, function(acc, v)
|
--- :fold({}, function(acc, v)
|
||||||
--- acc.max = math.max(v, acc.max or v) return acc
|
--- acc.max = math.max(v, acc.max or v)
|
||||||
|
--- return acc
|
||||||
--- end) --> { max = 42 }
|
--- end) --> { max = 42 }
|
||||||
--- ```
|
--- ```
|
||||||
---
|
---
|
||||||
|
@ -897,12 +897,12 @@ end
|
|||||||
---@param bufnr (integer) Buffer handle, or 0 for current.
|
---@param bufnr (integer) Buffer handle, or 0 for current.
|
||||||
---@param method (string) LSP method name
|
---@param method (string) LSP method name
|
||||||
---@param params (table|nil) Parameters to send to the server
|
---@param params (table|nil) Parameters to send to the server
|
||||||
---@param handler fun(results: table<integer, {error: lsp.ResponseError, result: any}>) (function)
|
---@param handler fun(results: table<integer, {error: lsp.ResponseError?, result: any}>) (function)
|
||||||
--- Handler called after all requests are completed. Server results are passed as
|
--- Handler called after all requests are completed. Server results are passed as
|
||||||
--- a `client_id:result` map.
|
--- a `client_id:result` map.
|
||||||
---@return function cancel Function that cancels all requests.
|
---@return function cancel Function that cancels all requests.
|
||||||
function lsp.buf_request_all(bufnr, method, params, handler)
|
function lsp.buf_request_all(bufnr, method, params, handler)
|
||||||
local results = {} --- @type table<integer,{error:lsp.ResponseError, result:any}>
|
local results = {} --- @type table<integer,{error: lsp.ResponseError?, result: any}>
|
||||||
local result_count = 0
|
local result_count = 0
|
||||||
local expected_result_count = 0
|
local expected_result_count = 0
|
||||||
|
|
||||||
@ -940,7 +940,7 @@ end
|
|||||||
---@param params table? Parameters to send to the server
|
---@param params table? Parameters to send to the server
|
||||||
---@param timeout_ms integer? Maximum time in milliseconds to wait for a result.
|
---@param timeout_ms integer? Maximum time in milliseconds to wait for a result.
|
||||||
--- (default: `1000`)
|
--- (default: `1000`)
|
||||||
---@return table<integer, {err: lsp.ResponseError, result: any}>? result Map of client_id:request_result.
|
---@return table<integer, {error: lsp.ResponseError?, result: any}>? result Map of client_id:request_result.
|
||||||
---@return string? err On timeout, cancel, or error, `err` is a string describing the failure reason, and `result` is nil.
|
---@return string? err On timeout, cancel, or error, `err` is a string describing the failure reason, and `result` is nil.
|
||||||
function lsp.buf_request_sync(bufnr, method, params, timeout_ms)
|
function lsp.buf_request_sync(bufnr, method, params, timeout_ms)
|
||||||
local request_results ---@type table
|
local request_results ---@type table
|
||||||
|
@ -503,7 +503,7 @@ function M.typehierarchy(kind)
|
|||||||
|
|
||||||
--- Merge results from multiple clients into a single table. Client-ID is preserved.
|
--- Merge results from multiple clients into a single table. Client-ID is preserved.
|
||||||
---
|
---
|
||||||
--- @param results table<integer, {error: lsp.ResponseError, result: lsp.TypeHierarchyItem[]?}>
|
--- @param results table<integer, {error: lsp.ResponseError?, result: lsp.TypeHierarchyItem[]?}>
|
||||||
--- @return [integer, lsp.TypeHierarchyItem][]
|
--- @return [integer, lsp.TypeHierarchyItem][]
|
||||||
local function merge_results(results)
|
local function merge_results(results)
|
||||||
local merged_results = {}
|
local merged_results = {}
|
||||||
@ -521,7 +521,7 @@ function M.typehierarchy(kind)
|
|||||||
|
|
||||||
local bufnr = api.nvim_get_current_buf()
|
local bufnr = api.nvim_get_current_buf()
|
||||||
local params = util.make_position_params()
|
local params = util.make_position_params()
|
||||||
--- @param results table<integer, {error: lsp.ResponseError, result: lsp.TypeHierarchyItem[]?}>
|
--- @param results table<integer, {error: lsp.ResponseError?, result: lsp.TypeHierarchyItem[]?}>
|
||||||
vim.lsp.buf_request_all(bufnr, ms.textDocument_prepareTypeHierarchy, params, function(results)
|
vim.lsp.buf_request_all(bufnr, ms.textDocument_prepareTypeHierarchy, params, function(results)
|
||||||
local merged_results = merge_results(results)
|
local merged_results = merge_results(results)
|
||||||
if #merged_results == 0 then
|
if #merged_results == 0 then
|
||||||
|
@ -98,7 +98,7 @@ function M.on_inlayhint(err, result, ctx, _)
|
|||||||
api.nvim__redraw({ buf = bufnr, valid = true })
|
api.nvim__redraw({ buf = bufnr, valid = true })
|
||||||
end
|
end
|
||||||
|
|
||||||
--- |lsp-handler| for the method `textDocument/inlayHint/refresh`
|
--- |lsp-handler| for the method `workspace/inlayHint/refresh`
|
||||||
---@param ctx lsp.HandlerContext
|
---@param ctx lsp.HandlerContext
|
||||||
---@private
|
---@private
|
||||||
function M.on_refresh(err, _, ctx, _)
|
function M.on_refresh(err, _, ctx, _)
|
||||||
@ -368,6 +368,7 @@ api.nvim_set_decoration_provider(namespace, {
|
|||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
--- Query whether inlay hint is enabled in the {filter}ed scope
|
||||||
--- @param filter vim.lsp.inlay_hint.enable.Filter
|
--- @param filter vim.lsp.inlay_hint.enable.Filter
|
||||||
--- @return boolean
|
--- @return boolean
|
||||||
--- @since 12
|
--- @since 12
|
||||||
@ -391,7 +392,7 @@ end
|
|||||||
--- Buffer number, or 0 for current buffer, or nil for all.
|
--- Buffer number, or 0 for current buffer, or nil for all.
|
||||||
--- @field bufnr integer?
|
--- @field bufnr integer?
|
||||||
|
|
||||||
--- Enables or disables inlay hints for a buffer.
|
--- Enables or disables inlay hints for the {filter}ed scope.
|
||||||
---
|
---
|
||||||
--- To "toggle", pass the inverse of `is_enabled()`:
|
--- To "toggle", pass the inverse of `is_enabled()`:
|
||||||
---
|
---
|
||||||
|
@ -539,7 +539,7 @@ end
|
|||||||
---
|
---
|
||||||
--- ```lua
|
--- ```lua
|
||||||
--- vim.keymap.set({ 'i', 's' }, '<Tab>', function()
|
--- vim.keymap.set({ 'i', 's' }, '<Tab>', function()
|
||||||
--- if vim.snippet.jumpable(1) then
|
--- if vim.snippet.active({ direction = 1 }) then
|
||||||
--- return '<cmd>lua vim.snippet.jump(1)<cr>'
|
--- return '<cmd>lua vim.snippet.jump(1)<cr>'
|
||||||
--- else
|
--- else
|
||||||
--- return '<Tab>'
|
--- return '<Tab>'
|
||||||
|
@ -353,7 +353,7 @@ void check_cursor_col(win_T *win)
|
|||||||
// Allow cursor past end-of-line when:
|
// Allow cursor past end-of-line when:
|
||||||
// - in Insert mode or restarting Insert mode
|
// - in Insert mode or restarting Insert mode
|
||||||
// - in Visual mode and 'selection' isn't "old"
|
// - in Visual mode and 'selection' isn't "old"
|
||||||
// - 'virtualedit' is set */
|
// - 'virtualedit' is set
|
||||||
if ((State & MODE_INSERT) || restart_edit
|
if ((State & MODE_INSERT) || restart_edit
|
||||||
|| (VIsual_active && *p_sel != 'o')
|
|| (VIsual_active && *p_sel != 'o')
|
||||||
|| (cur_ve_flags & VE_ONEMORE)
|
|| (cur_ve_flags & VE_ONEMORE)
|
||||||
|
@ -4082,7 +4082,7 @@ void separate_nextcmd(exarg_T *eap)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else if (
|
} else if (
|
||||||
// Check for '"': start of comment or '|': next command */
|
// Check for '"': start of comment or '|': next command
|
||||||
// :@" does not start a comment!
|
// :@" does not start a comment!
|
||||||
// :redir @" doesn't either.
|
// :redir @" doesn't either.
|
||||||
(*p == '"'
|
(*p == '"'
|
||||||
|
@ -443,7 +443,7 @@ int grid_line_puts(int col, const char *text, int textlen, int attr)
|
|||||||
|
|
||||||
if (col + mbyte_cells > max_col) {
|
if (col + mbyte_cells > max_col) {
|
||||||
// Only 1 cell left, but character requires 2 cells:
|
// Only 1 cell left, but character requires 2 cells:
|
||||||
// display a '>' in the last column to avoid wrapping. */
|
// display a '>' in the last column to avoid wrapping.
|
||||||
schar = schar_from_ascii('>');
|
schar = schar_from_ascii('>');
|
||||||
mbyte_cells = 1;
|
mbyte_cells = 1;
|
||||||
}
|
}
|
||||||
|
@ -1963,7 +1963,7 @@ int syn_name2id_len(const char *name, size_t len)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Avoid using stricmp() too much, it's slow on some systems */
|
// Avoid using stricmp() too much, it's slow on some systems
|
||||||
// Avoid alloc()/free(), these are slow too.
|
// Avoid alloc()/free(), these are slow too.
|
||||||
vim_memcpy_up(name_u, name, len);
|
vim_memcpy_up(name_u, name, len);
|
||||||
name_u[len] = '\0';
|
name_u[len] = '\0';
|
||||||
|
@ -1197,7 +1197,7 @@ static int cin_is_cpp_baseclass(cpp_baseclass_cache_T *cached)
|
|||||||
s = line;
|
s = line;
|
||||||
}
|
}
|
||||||
if (s == line) {
|
if (s == line) {
|
||||||
// don't recognize "case (foo):" as a baseclass */
|
// don't recognize "case (foo):" as a baseclass
|
||||||
if (cin_iscase(s, false)) {
|
if (cin_iscase(s, false)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1812,8 +1812,7 @@ int makemap(FILE *fd, buf_T *buf)
|
|||||||
iemsg(_("E228: makemap: Illegal mode"));
|
iemsg(_("E228: makemap: Illegal mode"));
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
do {
|
do { // do this twice if c2 is set, 3 times with c3
|
||||||
// do this twice if c2 is set, 3 times with c3 */
|
|
||||||
// When outputting <> form, need to make sure that 'cpo'
|
// When outputting <> form, need to make sure that 'cpo'
|
||||||
// is set to the Vim default.
|
// is set to the Vim default.
|
||||||
if (!did_cpo) {
|
if (!did_cpo) {
|
||||||
|
@ -999,7 +999,7 @@ static void uniquefy_paths(garray_T *gap, char *pattern)
|
|||||||
memmove(path, path_cutoff, strlen(path_cutoff) + 1);
|
memmove(path, path_cutoff, strlen(path_cutoff) + 1);
|
||||||
} else {
|
} else {
|
||||||
// Here all files can be reached without path, so get shortest
|
// Here all files can be reached without path, so get shortest
|
||||||
// unique path. We start at the end of the path. */
|
// unique path. We start at the end of the path.
|
||||||
char *pathsep_p = path + len - 1;
|
char *pathsep_p = path + len - 1;
|
||||||
while (find_previous_pathsep(path, &pathsep_p)) {
|
while (find_previous_pathsep(path, &pathsep_p)) {
|
||||||
if (vim_regexec(®match, pathsep_p + 1, 0)
|
if (vim_regexec(®match, pathsep_p + 1, 0)
|
||||||
|
@ -10555,7 +10555,7 @@ nfa_do_multibyte:
|
|||||||
// NFA_END_COMPOSING is the ). Note that right now we are
|
// NFA_END_COMPOSING is the ). Note that right now we are
|
||||||
// building the postfix form, not the NFA itself;
|
// building the postfix form, not the NFA itself;
|
||||||
// a composing char could be: a, b, c, NFA_COMPOSING
|
// a composing char could be: a, b, c, NFA_COMPOSING
|
||||||
// where 'b' and 'c' are chars with codes > 256. */
|
// where 'b' and 'c' are chars with codes > 256.
|
||||||
while (true) {
|
while (true) {
|
||||||
EMIT(c);
|
EMIT(c);
|
||||||
if (i > 0) {
|
if (i > 0) {
|
||||||
|
@ -2460,7 +2460,7 @@ int current_search(int count, bool forward)
|
|||||||
// beginning of the file (cursor might be on the search match)
|
// beginning of the file (cursor might be on the search match)
|
||||||
// except when Visual mode is active, so that extending the visual
|
// except when Visual mode is active, so that extending the visual
|
||||||
// selection works.
|
// selection works.
|
||||||
if (i == 1 && !result) { // not found, abort */
|
if (i == 1 && !result) { // not found, abort
|
||||||
curwin->w_cursor = orig_pos;
|
curwin->w_cursor = orig_pos;
|
||||||
if (VIsual_active) {
|
if (VIsual_active) {
|
||||||
VIsual = save_VIsual;
|
VIsual = save_VIsual;
|
||||||
@ -3677,9 +3677,8 @@ void find_pattern_in_path(char *ptr, Direction dir, size_t len, bool whole, bool
|
|||||||
true) & kEqualFiles) {
|
true) & kEqualFiles) {
|
||||||
if (type != CHECK_PATH
|
if (type != CHECK_PATH
|
||||||
&& action == ACTION_SHOW_ALL && files[i].matched) {
|
&& action == ACTION_SHOW_ALL && files[i].matched) {
|
||||||
msg_putchar('\n'); // cursor below last one */
|
msg_putchar('\n'); // cursor below last one
|
||||||
if (!got_int) { // don't display if 'q' typed at "--more--"
|
if (!got_int) { // don't display if 'q' typed at "--more--" message
|
||||||
// message
|
|
||||||
msg_home_replace_hl(new_fname);
|
msg_home_replace_hl(new_fname);
|
||||||
msg_puts(_(" (includes previously listed match)"));
|
msg_puts(_(" (includes previously listed match)"));
|
||||||
prev_fname = NULL;
|
prev_fname = NULL;
|
||||||
|
Loading…
Reference in New Issue
Block a user