Subject: Re: [RFC/PATCH] remove vim syntax highlighting in favor of upstream

From: SZEDER Gábor <[email-masked]>
Date: Thu, 25 Sep 2008 14:48:17 +0200

Hi,

OK, so I'm complaining a bit.

On Wed, Sep 24, 2008 at 09:56:58PM +0200, SZEDER Gábor wrote:
> +To install:
> +
> +  1. Copy these files to vim's syntax directory $HOME/.vim/syntax
> +  2. Auto-detect the editing of various git-related filetypes:
> +	$ cat >>$HOME/.vimrc <<'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

There are issues with this second step.  If I append this code to my
.vimrc, then vim sometimes overrides the filetype with conf.

vim has a guessing rule for detecting conf files, which triggers if
one of the first five lines of the file begins with a '#'.  So if I
start to write a new commit message or I interactively rebase 4 or
less commits, then this rule triggers and vim overrides the git
filetype with filetype conf.  If I do a commit --amend with a long
enough original commit message or an interactive rebase with more than
4 commit, then this rule no more triggers and everything is fine.

But what's really puzzling is that if I insert the above code into
$VIMRUNTIME/filetype.vim (at the spot where it can be found in vim
7.2's filetype.vim), then everything works as expected, git filetypes
are never overridden.

This is not related to the changes in this patch.  git's original vim
syntax highlight for commit messages has the exact same behaviour.

The first step is OK: it doesn't matter whether I put git-related
syntax files under $HOME/.vim/syntax/ or under $VIMRUNTIME/syntax/.

I'm using vim 7.1.138 in Ubuntu 8.04.

Anyone have a clue?

Thanks,
Gábor