git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] remove vim syntax highlighting in favor of upstream

From
SZEDER Gábor <szeder@ira.uka.de>
Date
Sep 29, 2008, 20:08 UTC
Message-ID
<20080929200814.GA19840@neumann>
In-Reply-To
<20080929145542.GA18340@spearce.org>

As of version 7.2, vim ships with its own syntax highlighting for git commit messages, which is:

  1. more comprehensive in splitting up the various
     components of the file
  2. in accordance with the usual vim behavior for syntax
     highlighting (e.g., respecting b:current_syntax)
  3. presumably better maintained (I have not been using
     what's in git's contrib/ directory for some time in
     favor of the upstream version)

Furthermore, vim upsream also provides syntax highlighting for other git filetypes (gitconfig, rebase, send-email).

This patch gets rid of our local version and just points interested parties to the upstream version.

The code for auto-detecting filetypes is taken from vim's runtime/filetype.vim.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
---
On Mon, Sep 29, 2008 at 07:55:42AM -0700, Shawn O. Pearce wrote:
> Missing SBO line?

Here it is. Since significant parts of the patch and the commit message are from Jeff, maybe he should sign off, too?

Note, that this patch is slightly different from the previous one, as it proposes writing the auto-detect commands into ~/.vim/filetype.vim instead of ~/.vimrc. It's not quite clear to me why, but it seems to resolve the filetype confusion I mentioned in my previous email.

 contrib/vim/README               |   38 ++++++++++++++++++++++++++++++--------
 contrib/vim/syntax/gitcommit.vim |   18 ------------------
 2 files changed, 30 insertions(+), 26 deletions(-)
 delete mode 100644 contrib/vim/syntax/gitcommit.vim
diff --git a/contrib/vim/README b/contrib/vim/README
index 9e7881f..c487346 100644
--- a/contrib/vim/README
+++ b/contrib/vim/README
@@ -1,8 +1,30 @@
-To syntax highlight git's commit messages, you need to:
-  1. Copy syntax/gitcommit.vim to vim's syntax directory:
-     $ mkdir -p $HOME/.vim/syntax
-     $ cp syntax/gitcommit.vim $HOME/.vim/syntax
-  2. Auto-detect the editing of git commit files:
-     $ cat >>$HOME/.vimrc <<'EOF'
-     autocmd BufNewFile,BufRead COMMIT_EDITMSG set filetype=gitcommit
-     EOF
+Syntax highlighting for git commit messages, config files, etc. is
+included with the vim distribution as of vim 7.2, and should work
+automatically.
+
+If you have an older version of vim, you can get the latest syntax
+files from the vim project:
+
+  http://vim.svn.sourceforge.net/viewvc/vim/trunk/runtime/syntax/git.vim
+  http://vim.svn.sourceforge.net/viewvc/vim/trunk/runtime/syntax/gitcommit.vim
+  http://vim.svn.sourceforge.net/viewvc/vim/trunk/runtime/syntax/gitconfig.vim
+  http://vim.svn.sourceforge.net/viewvc/vim/trunk/runtime/syntax/gitrebase.vim
+  http://vim.svn.sourceforge.net/viewvc/vim/trunk/runtime/syntax/gitsendemail.vim
+
+To install:
+
+  1. Copy these files to vim's syntax directory $HOME/.vim/syntax
+  2. To auto-detect the editing of various git-related filetypes:
+	$ cat >>$HOME/.vim/filetype.vim <<'EOF'
+	autocmd BufNewFile,BufRead *.git/COMMIT_EDITMSG    setf gitcommit
+	autocmd BufNewFile,BufRead *.git/config,.gitconfig setf gitconfig
+	autocmd BufNewFile,BufRead git-rebase-todo         setf gitrebase
+	autocmd BufNewFile,BufRead .msg.[0-9]*
+		\ if getline(1) =~ '^From.*# This line is ignored.$' |
+		\   setf gitsendemail |
+		\ endif
+	autocmd BufNewFile,BufRead *.git/**
+		\ if getline(1) =~ '^\x\{40\}\>\|^ref: ' |
+		\   setf git |
+		\ endif
+	EOF
diff --git a/contrib/vim/syntax/gitcommit.vim b/contrib/vim/syntax/gitcommit.vim
deleted file mode 100644
index 332121b..0000000
--- a/contrib/vim/syntax/gitcommit.vim
+++ /dev/null
@@ -1,18 +0,0 @@
-syn region gitLine start=/^#/ end=/$/
-syn region gitCommit start=/^# Changes to be committed:$/ end=/^#$/ contains=gitHead,gitCommitFile
-syn region gitHead contained start=/^#   (.*)/ end=/^#$/
-syn region gitChanged start=/^# Changed but not updated:/ end=/^#$/ contains=gitHead,gitChangedFile
-syn region gitUntracked start=/^# Untracked files:/ end=/^#$/ contains=gitHead,gitUntrackedFile
-
-syn match gitCommitFile contained /^#\t.*/hs=s+2
-syn match gitChangedFile contained /^#\t.*/hs=s+2
-syn match gitUntrackedFile contained /^#\t.*/hs=s+2
-
-hi def link gitLine Comment
-hi def link gitCommit Comment
-hi def link gitChanged Comment
-hi def link gitHead Comment
-hi def link gitUntracked Comment
-hi def link gitCommitFile Type
-hi def link gitChangedFile Constant
-hi def link gitUntrackedFile Constant
-- 
1.6.0.2.330.gcef5c
Previous: Shawn O. PearceNext: Jeff King
Message 12 of 14 in “vim syntax: highlight the diff in commit message template”
  1. vim syntax: highlight the diff in commit message templateSZEDER Gábor, Sep 24, 2008
  2. Jeff KingSep 24, 2008
  3. SZEDER GáborSep 24, 2008
  4. remove vim syntax highlighting in favor of upstreamJeff King, Sep 24, 2008
  5. Shawn O. PearceSep 24, 2008
  6. Garry DolleySep 24, 2008
  7. SZEDER GáborSep 24, 2008
  8. Jeff KingSep 24, 2008
  9. SZEDER GáborSep 25, 2008
  10. Bob HiestandSep 25, 2008
  11. Shawn O. PearceSep 29, 2008
  12. remove vim syntax highlighting in favor of upstreamSZEDER Gábor, Sep 29, 2008
  13. Jeff KingSep 29, 2008
  14. Michael J GruberSep 30, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.