aboutsummaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'runtime')
-rw-r--r--runtime/doc/news.txt5
-rw-r--r--runtime/doc/options.txt6
-rw-r--r--runtime/doc/vim_diff.txt2
-rw-r--r--runtime/lua/vim/filetype.lua95
4 files changed, 57 insertions, 51 deletions
diff --git a/runtime/doc/news.txt b/runtime/doc/news.txt
index b438595b5f..2afb22bb43 100644
--- a/runtime/doc/news.txt
+++ b/runtime/doc/news.txt
@@ -47,6 +47,9 @@ The following changes may require adaptations in user config or plugins.
• libiconv is now a required build dependency.
+• Unsaved changes are now preserved rather than discarded when |channel-stdio|
+ is closed.
+
==============================================================================
NEW FEATURES *news-features*
@@ -63,7 +66,7 @@ The following new APIs or features were added.
<
(or the Vimscript equivalent) to their |config| file.
-• Run Lua scripts from your shell using |-l|. >
+• Added support for running Lua scripts from shell using |-l|. >
nvim -l foo.lua --arg1 --arg2
< Also works with stdin: >
echo "print(42)" | nvim -l -
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 17f1c822ff..e4106358f1 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -6201,8 +6201,10 @@ A jump table for the options with a short description can be found at |Q_op|.
this label.
< - Where to truncate line if too long. Default is at the start.
No width fields allowed.
- = - Separation point between alignment sections. Each section will
- be separated by an equal number of spaces.
+ = - Separation point between alignment sections. Each section will
+ be separated by an equal number of spaces. With one %= what
+ comes after it will be right-aligned. With two %= there is a
+ middle part, with white space left and right of it.
No width fields allowed.
# - Set highlight group. The name must follow and then a # again.
Thus use %#HLname# for highlight group HLname. The same
diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt
index bb3b670b24..97fc211c36 100644
--- a/runtime/doc/vim_diff.txt
+++ b/runtime/doc/vim_diff.txt
@@ -267,7 +267,6 @@ Options:
'pumblend' pseudo-transparent popupmenu
'scrollback'
'signcolumn' supports up to 9 dynamic/fixed columns
- 'statusline' supports unlimited alignment sections
'tabline' %@Func@foo%X can call any function on mouse-click
'winblend' pseudo-transparency in floating windows |api-floatwin|
'winhighlight' window-local highlights
@@ -292,6 +291,7 @@ These Nvim features were later integrated into Vim.
- |WinScrolled|
- |:sign-define| "numhl" argument
- |:source| works with anonymous (no file) scripts
+- 'statusline' supports unlimited alignment sections
==============================================================================
5. Changed features *nvim-features-changed*
diff --git a/runtime/lua/vim/filetype.lua b/runtime/lua/vim/filetype.lua
index 1f605b72f3..ec568b5b82 100644
--- a/runtime/lua/vim/filetype.lua
+++ b/runtime/lua/vim/filetype.lua
@@ -2449,6 +2449,7 @@ local function match_pattern(name, path, tail, pat)
return false
end
end
+
-- If the pattern contains a / match against the full path, otherwise just the tail
local fullpat = '^' .. pat .. '$'
local matches
@@ -2526,64 +2527,64 @@ function M.match(args)
name = api.nvim_buf_get_name(bufnr)
end
- if name then
- name = normalize_path(name)
- end
-
local ft, on_detect
- -- First check for the simple case where the full path exists as a key
- local path = vim.fn.fnamemodify(name, ':p')
- ft, on_detect = dispatch(filename[path], path, bufnr)
- if ft then
- return ft, on_detect
- end
+ if name then
+ name = normalize_path(name)
- -- Next check against just the file name
- local tail = vim.fn.fnamemodify(name, ':t')
- ft, on_detect = dispatch(filename[tail], path, bufnr)
- if ft then
- return ft, on_detect
- end
+ -- First check for the simple case where the full path exists as a key
+ local path = vim.fn.fnamemodify(name, ':p')
+ ft, on_detect = dispatch(filename[path], path, bufnr)
+ if ft then
+ return ft, on_detect
+ end
- -- Next, check the file path against available patterns with non-negative priority
- local j = 1
- for i, v in ipairs(pattern_sorted) do
- local k = next(v)
- local opts = v[k][2]
- if opts.priority < 0 then
- j = i
- break
+ -- Next check against just the file name
+ local tail = vim.fn.fnamemodify(name, ':t')
+ ft, on_detect = dispatch(filename[tail], path, bufnr)
+ if ft then
+ return ft, on_detect
end
- local filetype = v[k][1]
- local matches = match_pattern(name, path, tail, k)
- if matches then
- ft, on_detect = dispatch(filetype, path, bufnr, matches)
- if ft then
- return ft, on_detect
+ -- Next, check the file path against available patterns with non-negative priority
+ local j = 1
+ for i, v in ipairs(pattern_sorted) do
+ local k = next(v)
+ local opts = v[k][2]
+ if opts.priority < 0 then
+ j = i
+ break
+ end
+
+ local filetype = v[k][1]
+ local matches = match_pattern(name, path, tail, k)
+ if matches then
+ ft, on_detect = dispatch(filetype, path, bufnr, matches)
+ if ft then
+ return ft, on_detect
+ end
end
end
- end
- -- Next, check file extension
- local ext = vim.fn.fnamemodify(name, ':e')
- ft, on_detect = dispatch(extension[ext], path, bufnr)
- if ft then
- return ft, on_detect
- end
+ -- Next, check file extension
+ local ext = vim.fn.fnamemodify(name, ':e')
+ ft, on_detect = dispatch(extension[ext], path, bufnr)
+ if ft then
+ return ft, on_detect
+ end
- -- Next, check patterns with negative priority
- for i = j, #pattern_sorted do
- local v = pattern_sorted[i]
- local k = next(v)
+ -- Next, check patterns with negative priority
+ for i = j, #pattern_sorted do
+ local v = pattern_sorted[i]
+ local k = next(v)
- local filetype = v[k][1]
- local matches = match_pattern(name, path, tail, k)
- if matches then
- ft, on_detect = dispatch(filetype, path, bufnr, matches)
- if ft then
- return ft, on_detect
+ local filetype = v[k][1]
+ local matches = match_pattern(name, path, tail, k)
+ if matches then
+ ft, on_detect = dispatch(filetype, path, bufnr, matches)
+ if ft then
+ return ft, on_detect
+ end
end
end
end