0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 9.0.1620: Nix files are not recognized from the hashbang line

Problem:    Nix files are not recognized from the hashbang line.
Solution:   Add a hashbang check. (issue #12507)
This commit is contained in:
Bram Moolenaar
2023-06-08 21:27:13 +01:00
parent 85ef2df075
commit 19548c6a74
3 changed files with 10 additions and 2 deletions

View File

@@ -4,7 +4,7 @@ vim9script
# Invoked from "scripts.vim" in 'runtimepath' # Invoked from "scripts.vim" in 'runtimepath'
# #
# Maintainer: Bram Moolenaar <Bram@vim.org> # Maintainer: Bram Moolenaar <Bram@vim.org>
# Last Change: 2023 May 06 # Last Change: 2023 Jun 08
export def DetectFiletype() export def DetectFiletype()
var line1 = getline(1) var line1 = getline(1)
@@ -44,7 +44,7 @@ def DetectFromHashBang(firstline: string)
elseif line1 =~ '^#!\s*[^/\\ ]*\>\([^/\\]\|$\)' elseif line1 =~ '^#!\s*[^/\\ ]*\>\([^/\\]\|$\)'
name = substitute(line1, '^#!\s*\([^/\\ ]*\>\).*', '\1', '') name = substitute(line1, '^#!\s*\([^/\\ ]*\>\).*', '\1', '')
else else
name = substitute(line1, '^#!\s*\S*[/\\]\(\i\+\).*', '\1', '') name = substitute(line1, '^#!\s*\S*[/\\]\(\f\+\).*', '\1', '')
endif endif
# 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
@@ -197,6 +197,10 @@ def DetectFromHashBang(firstline: string)
elseif name =~ 'guile' elseif name =~ 'guile'
setl ft=scheme setl ft=scheme
# Nix
elseif name =~ 'nix-shell'
setl ft=nix
endif endif
enddef enddef

View File

@@ -852,6 +852,7 @@ def s:GetScriptChecks(): dict<list<list<string>>>
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']],
@@ -902,6 +903,7 @@ def s:GetScriptEnvChecks(): dict<list<list<string>>>
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']],
} }
enddef enddef

View File

@@ -695,6 +695,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
1620,
/**/ /**/
1619, 1619,
/**/ /**/