changeset 32576:5d32f2d42a6b v9.0.1620

patch 9.0.1620: Nix files are not recognized from the hashbang line Commit: https://github.com/vim/vim/commit/19548c6a742d954ecd0b50b0680c37cc6ced7473 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Jun 8 21:27:13 2023 +0100 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 https://github.com/vim/vim/issues/12507)
author Bram Moolenaar <Bram@vim.org>
date Thu, 08 Jun 2023 22:30:04 +0200
parents c03fa34ca300
children e6d95bfda1d6
files runtime/autoload/dist/script.vim src/testdir/test_filetype.vim src/version.c
diffstat 3 files changed, 10 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/autoload/dist/script.vim
+++ b/runtime/autoload/dist/script.vim
@@ -4,7 +4,7 @@ vim9script
 # Invoked from "scripts.vim" in 'runtimepath'
 #
 # Maintainer:	Bram Moolenaar <Bram@vim.org>
-# Last Change:	2023 May 06
+# Last Change:	2023 Jun 08
 
 export def DetectFiletype()
   var line1 = getline(1)
@@ -44,7 +44,7 @@ def DetectFromHashBang(firstline: string
   elseif line1 =~ '^#!\s*[^/\\ ]*\>\([^/\\]\|$\)'
     name = substitute(line1, '^#!\s*\([^/\\ ]*\>\).*', '\1', '')
   else
-    name = substitute(line1, '^#!\s*\S*[/\\]\(\i\+\).*', '\1', '')
+    name = substitute(line1, '^#!\s*\S*[/\\]\(\f\+\).*', '\1', '')
   endif
 
   # 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'
     setl ft=scheme
 
+    # Nix
+  elseif name =~ 'nix-shell'
+    setl ft=nix
+
   endif
 enddef
 
--- a/src/testdir/test_filetype.vim
+++ b/src/testdir/test_filetype.vim
@@ -852,6 +852,7 @@ def s:GetScriptChecks(): dict<list<list<
     expect: [['#!/path/expect']],
     gnuplot: [['#!/path/gnuplot']],
     make:   [['#!/path/make']],
+    nix:    [['#!/path/nix-shell']],
     pike:   [['#!/path/pike'],
             ['#!/path/pike0'],
             ['#!/path/pike9']],
@@ -902,6 +903,7 @@ def s:GetScriptEnvChecks(): dict<list<li
     scheme: [['#!/usr/bin/env VAR=val --ignore-environment scheme']],
     python: [['#!/usr/bin/env VAR=val -S python -w -T']],
     wml: [['#!/usr/bin/env VAR=val --split-string wml']],
+    nix: [['#!/usr/bin/env nix-shell']],
   }
 enddef
 
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1620,
+/**/
     1619,
 /**/
     1618,