mirror of
https://github.com/neovim/neovim.git
synced 2025-09-06 11:28:22 +00:00
vim-patch:9.0.1620: Nix files are not recognized from the hashbang line (#23961)
Problem: Nix files are not recognized from the hashbang line.
Solution: Add a hashbang check. (issue vim/vim#12507)
19548c6a74
Co-authored-by: Bram Moolenaar <Bram@vim.org>
This commit is contained in:
@@ -1459,6 +1459,7 @@ local patterns_hashbang = {
|
|||||||
['gforth\\>'] = { 'forth', { vim_regex = true } },
|
['gforth\\>'] = { 'forth', { vim_regex = true } },
|
||||||
['icon\\>'] = { 'icon', { vim_regex = true } },
|
['icon\\>'] = { 'icon', { vim_regex = true } },
|
||||||
guile = 'scheme',
|
guile = 'scheme',
|
||||||
|
['nix%-shell'] = 'nix',
|
||||||
}
|
}
|
||||||
|
|
||||||
---@private
|
---@private
|
||||||
@@ -1491,7 +1492,7 @@ local function match_from_hashbang(contents, path, dispatch_extension)
|
|||||||
elseif matchregex(first_line, [[^#!\s*[^/\\ ]*\>\([^/\\]\|$\)]]) then
|
elseif matchregex(first_line, [[^#!\s*[^/\\ ]*\>\([^/\\]\|$\)]]) then
|
||||||
name = vim.fn.substitute(first_line, [[^#!\s*\([^/\\ ]*\>\).*]], '\\1', '')
|
name = vim.fn.substitute(first_line, [[^#!\s*\([^/\\ ]*\>\).*]], '\\1', '')
|
||||||
else
|
else
|
||||||
name = vim.fn.substitute(first_line, [[^#!\s*\S*[/\\]\(\i\+\).*]], '\\1', '')
|
name = vim.fn.substitute(first_line, [[^#!\s*\S*[/\\]\(\f\+\).*]], '\\1', '')
|
||||||
end
|
end
|
||||||
|
|
||||||
-- tcl scripts may have #!/bin/sh in the first line and "exec wish" in the
|
-- tcl scripts may have #!/bin/sh in the first line and "exec wish" in the
|
||||||
|
@@ -773,6 +773,7 @@ let s:script_checks = {
|
|||||||
\ 'expect': [['#!/path/expect']],
|
\ 'expect': [['#!/path/expect']],
|
||||||
\ 'gnuplot': [['#!/path/gnuplot']],
|
\ 'gnuplot': [['#!/path/gnuplot']],
|
||||||
\ 'make': [['#!/path/make']],
|
\ 'make': [['#!/path/make']],
|
||||||
|
\ 'nix': [['#!/path/nix-shell']],
|
||||||
\ 'pike': [['#!/path/pike'],
|
\ 'pike': [['#!/path/pike'],
|
||||||
\ ['#!/path/pike0'],
|
\ ['#!/path/pike0'],
|
||||||
\ ['#!/path/pike9']],
|
\ ['#!/path/pike9']],
|
||||||
@@ -819,6 +820,7 @@ let s:script_env_checks = {
|
|||||||
\ 'scheme': [['#!/usr/bin/env VAR=val --ignore-environment scheme']],
|
\ 'scheme': [['#!/usr/bin/env VAR=val --ignore-environment scheme']],
|
||||||
\ 'python': [['#!/usr/bin/env VAR=val -S python -w -T']],
|
\ 'python': [['#!/usr/bin/env VAR=val -S python -w -T']],
|
||||||
\ 'wml': [['#!/usr/bin/env VAR=val --split-string wml']],
|
\ 'wml': [['#!/usr/bin/env VAR=val --split-string wml']],
|
||||||
|
\ 'nix': [['#!/usr/bin/env nix-shell']],
|
||||||
\ }
|
\ }
|
||||||
|
|
||||||
func Run_script_detection(test_dict)
|
func Run_script_detection(test_dict)
|
||||||
|
Reference in New Issue
Block a user