changeset 7:adc267e2f0f4

Added syntax highlighting for hgstatus window.
author Ludovic Chabant <ludovic@chabant.com>
date Fri, 09 Dec 2011 23:08:53 -0800
parents 1da613c13d81
children 1e155bfa94ad
files ftdetect/hgcommit.vim ftdetect/hgstatus.vim plugin/lawrencium.vim syntax/hgcommit.vim syntax/hgstatus.vim
diffstat 5 files changed, 81 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ftdetect/hgcommit.vim	Fri Dec 09 23:08:53 2011 -0800
@@ -0,0 +1,2 @@
+au BufRead,BufNewFile hg-editor-*.txt set filetype=hgcommit
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ftdetect/hgstatus.vim	Fri Dec 09 23:08:53 2011 -0800
@@ -0,0 +1,2 @@
+au BufRead,BufNewFile hg-status-*.txt set filetype=hgstatus
+
--- a/plugin/lawrencium.vim	Fri Dec 09 17:12:13 2011 -0800
+++ b/plugin/lawrencium.vim	Fri Dec 09 23:08:53 2011 -0800
@@ -248,12 +248,14 @@
     call append(0, l:status_lines)
     execute "setlocal previewheight=" . l:preview_height
     
-    " Setup the buffer correctly.
+    " Setup the buffer correctly: readonly, and with the correct repo linked
+    " to it.
     let b:mercurial_dir = l:repo.root_dir
     setlocal buftype=nofile
     setlocal nomodified
     setlocal nomodifiable
     setlocal readonly
+    setlocal syntax=hgstatus
     
     " Add some handy mappings.
     nnoremap <buffer> <silent> <C-N> :call search('^[MARC\!\?I ]\s.', 'We')<cr>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/syntax/hgcommit.vim	Fri Dec 09 23:08:53 2011 -0800
@@ -0,0 +1,46 @@
+" Vim syntax file
+" Language:     hg commit file
+" Maintainer:   Pierre Bourdon <delroth@gmail.com>
+" Filenames:    ^hg-editor-*.txt
+" Last Change:  2010 Jun 13
+
+" Some parts of the code by Dan LaMotte <lamotte85@gmail.com>
+
+if exists("b:current_syntax")
+    finish
+endif
+
+syn case match
+syn sync minlines=50
+
+if has("spell")
+    syn spell toplevel
+endif
+
+syn match   hgcommitFirstline   "\%^.*"         nextgroup=hgcommitBlank skipnl
+syn match   hgcommitSummary     "^.\{0,78\}"    contained containedin=hgcommitFirstline nextgroup=hgcommitOverflow contains=@Spell
+syn match   hgcommitOverflow    ".*"            contained contains=@Spell
+syn match   hgcommitBlank       "^HG:\@!.*"     contained contains=@Spell
+
+syn match   hgcommitComment     "^HG:.*"
+
+syn match hgcommitOnBranch  "\%(^HG: \)\@<=\<branch\> '" contained containedin=hgcommitComment nextgroup=hgcommitBranch
+syn match hgcommitBranch    "[^']\+" contained
+syn match hgcommitAdded     "\%(^HG: \)\@<=\<added\>" contained containedin=hgcommitComment nextgroup=hgcommitFile
+syn match hgcommitChanged   "\%(^HG: \)\@<=\<changed\>" contained containedin=hgcommitComment nextgroup=hgcommitFile
+syn match hgcommitRemoved   "\%(^HG: \)\@<=\<removed\>" contained containedin=hgcommitComment nextgroup=hgcommitFile
+syn match hgcommitFile      " \S\+" contained containedin=hgcommitAdded,hgcommitChanged
+
+hi def link hgcommitSummary     Keyword
+hi def link hgcommitOverflow    Error
+hi def link hgcommitBlank       Error
+
+hi def link hgcommitComment     Comment
+hi def link hgcommitOnBranch    Comment
+hi def link hgcommitBranch      Special
+hi def link hgcommitOnBranchEnd Comment
+hi def link hgcommitAdded       Type
+hi def link hgcommitChanged     Type
+hi def link hgcommitRemoved     Type
+hi def link hgcommitFile        Constant
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/syntax/hgstatus.vim	Fri Dec 09 23:08:53 2011 -0800
@@ -0,0 +1,28 @@
+" Vim syntax file
+" Language:     hg status output
+" Maintainer:   Ludovic Chabant <ludovic@chabant.com>
+" Filenames:    ^hg-status-*.txt
+
+if exists("b:current_syntax")
+    finish
+endif
+
+syn case match
+
+syn match hgstatusModified      "^M\s.*"
+syn match hgstatusAdded         "^A\s.*"
+syn match hgstatusRemoved       "^R\s.*"
+syn match hgstatusClean         "^C\s.*"
+syn match hgstatusMissing       "^?\s.*"
+syn match hgstatusNotTracked    "^!\s.*"
+syn match hgstatusIgnored       "^I\s.*"
+
+hi def link hgstatusModified    Identifier
+hi def link hgstatusAdded       Statement
+hi def link hgstatusRemoved     PreProc
+hi def link hgstatusClean       Constant
+hi def link hgstatusMissing     Error
+hi def link hgstatusNotTracked  Todo
+hi def link hgstatusIgnored     Ignore
+hi def link hgstatusFileName    Constant
+