On Tuesday 05 June 2007, you wrote:
> Hm. In the Vim 7.1 filetype.vim, filetype "conf" is set for any file, one
> of the first 5 lines of which starts with #, but only if everything else
> fails (and *.py is detected as type "python" before that...)
>
> I wonder what causes your first *.py, but not the others, to be detected as
> python.
The first file, the one that got good syntax highlighting, did not have
a she-bang line, others did not.
I'm having a similar problem:
I also program with a language called rebol.
filetype.vim does not properly "understand" how rebol works.
Here is the original code:
" Rexx, Rebol or R
au BufNewFile,BufRead *.r,*.R call s:FTr()
fun! s:FTr()
if getline(1) =~ '^REBOL'
setf rebol
else
let n = 1
let max = line("$")
if max > 50
let max = 50
endif
while n < max
" R has # comments
if getline(n) =~ '^\s*#'
setf r
break
endif
" Rexx has /* comments */
if getline(n) =~ '^\s*/\*'
setf rexx
break
endif
let n = n + 1
endwhile
if n >= max
setf rexx
endif
endif
endfun
# it is incomplete because a rebol file may
1)begin with the regex "REBOL" in either lower or upper or mixed case
2)begin with a shebang line containing "rebol"
3)furthermore, in some cases neither condition would be present.
Thus, I found that any rebol file *without* the shebang line highlighted
properly, but with the shebang line, needed :setf rebol
Now here is what is weird:
I changed the code in filetype to the following simpler approach:
au BufNewFile,BufRead *.r,*.R,*.reb setf rebol
removing function FTr entirely
but the same symptoms remain.
I would suspect that there is a side effect from some other file
that is sourced. When I get more time, I will remove files from
~/.vim/plugin , ... autoload etc and see what happens as I add
them back in. In the meantime, this highly annoying but not a
crisis, after all setf does the job.
thanks for looking into this,
I'd welcome other comments all the same.
regards
tim