Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] revised syntax vim file
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Issac Trotts <ijtrotts@u...>
Subject: Re: [Caml-list] revised syntax vim file
On Wed, Oct 30, 2002 at 12:21:22PM +0100, Stefano Zacchiroli wrote:
> On Wed, Oct 30, 2002 at 02:49:17AM -0800, Issac Trotts wrote:
> > Here's a patch to Markus Mottl's 
> > and Karl-Heinz Sylla's vim syntax file so it will work 
> > a bit better with the revised syntax.  
> 
> Thanks for the patch!
> 
> May I forward your patch to the debian vim maintainer so that it can be
> included in the debian vim package?

Glad to help.  Please forward the patch below instead.
There is still the issue of how to make it co-exist with the
standard OCaml syntax.  Probably searching for the regular
expressions 

  ^value
  do {

in a .ml or .mli file would be enough to tell which syntax to 
use.  Is there a convention of having some other suffix for
revised syntax filenames?  

Issac


--- ocaml.vim	2002-10-30 02:24:10.000000000 -0800
+++ ocamlrev.vim	2002-10-30 03:18:24.000000000 -0800
@@ -1,14 +1,19 @@
 " Vim syntax file
-" Language:     OCaml
+" Language:     ocaml revised syntax
 " Filenames:    *.ml *.mli *.mll *.mly
 " Maintainers:  Markus Mottl      <markus@oefai.at>
 "               Karl-Heinz Sylla  <Karl-Heinz.Sylla@gmd.de>
+" Revised:      Issac Trotts      <ijtrotts@ucdavis.edu>
 " URL:          http://www.ai.univie.ac.at/~markus/vim/syntax/ocaml.vim
-" Last Change:  2001 Nov 20 - Fixed small bug with modules  (MM)
+" Last Change:  
+"               2002 Oct 30 - Bug fixes (IT)
+"               2002 Oct 30 - Small tweaks for revised syntax (IT)
+"               2001 Nov 20 - Fixed small bug with modules  (MM)
 "               2001 Sep 01 - Fixed small bug with '\''  (MM)
 "               2001 Aug 29 - Added rules for scripting directives  (MM)
 "               2001 Aug 28 - Upgraded URL & mail address  (MM)
 "               2001 Apr 26 - upgraded for new Vim version  (MM)
+"
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -33,9 +38,6 @@
 syn match    ocamlKeyChar    "|"
 
 " Errors
-syn match    ocamlBraceErr   "}"
-syn match    ocamlBrackErr   "\]"
-syn match    ocamlParenErr   ")"
 syn match    ocamlArrErr     "|]"
 
 syn match    ocamlCommentErr "\*)"
@@ -55,17 +57,15 @@
 endif
 
 " Some convenient clusters
-syn cluster  ocamlAllErrs contains=ocamlBraceErr,ocamlBrackErr,ocamlParenErr,ocamlCommentErr,ocamlCountErr,ocamlDoErr,ocamlDoneErr,ocamlEndErr,ocamlThenErr
+syn cluster  ocamlAllErrs contains=ocamlParenErr,ocamlCommentErr,ocamlCountErr,ocamlDoErr,ocamlDoneErr,ocamlEndErr,ocamlThenErr
 
-syn cluster  ocamlAENoParen contains=ocamlBraceErr,ocamlBrackErr,ocamlCommentErr,ocamlCountErr,ocamlDoErr,ocamlDoneErr,ocamlEndErr,ocamlThenErr
+syn cluster  ocamlAENoParen contains=ocamlCommentErr,ocamlCountErr,ocamlDoErr,ocamlDoneErr,ocamlEndErr,ocamlThenErr
 
 syn cluster  ocamlContained contains=ocamlTodo,ocamlPreDef,ocamlModParam,ocamlModParam1,ocamlPreMPRestr,ocamlMPRestr,ocamlMPRestr1,ocamlMPRestr2,ocamlMPRestr3,ocamlModRHS,ocamlFuncWith,ocamlFuncStruct,ocamlModTypeRestr,ocamlModTRWith,ocamlWith,ocamlWithRest,ocamlModType,ocamlFullMod
 
 
 " Enclosing delimiters
 syn region   ocamlEncl transparent matchgroup=ocamlKeyword start="(" matchgroup=ocamlKeyword end=")" contains=ALLBUT,@ocamlContained,ocamlParenErr
-syn region   ocamlEncl transparent matchgroup=ocamlKeyword start="{" matchgroup=ocamlKeyword end="}"  contains=ALLBUT,@ocamlContained,ocamlBraceErr
-syn region   ocamlEncl transparent matchgroup=ocamlKeyword start="\[" matchgroup=ocamlKeyword end="\]" contains=ALLBUT,@ocamlContained,ocamlBrackErr
 syn region   ocamlEncl transparent matchgroup=ocamlKeyword start="\[|" matchgroup=ocamlKeyword end="|\]" contains=ALLBUT,@ocamlContained,ocamlArrErr
 
 
@@ -79,7 +79,7 @@
 
 
 " Blocks
-syn region   ocamlEnd matchgroup=ocamlKeyword start="\<begin\>" matchgroup=ocamlKeyword end="\<end\>" contains=ALLBUT,@ocamlContained,ocamlEndErr
+"syn region   ocamlEnd matchgroup=ocamlKeyword start="\<begin\>" matchgroup=ocamlKeyword end="\<end\>" contains=ALLBUT,@ocamlContained,ocamlEndErr
 
 
 " "for"
@@ -139,20 +139,20 @@
 
 syn keyword  ocamlKeyword  and as assert class
 syn keyword  ocamlKeyword  constraint else
-syn keyword  ocamlKeyword  exception external fun function
+syn keyword  ocamlKeyword  exception external fun 
 syn keyword  ocamlKeyword  in inherit initializer
 syn keyword  ocamlKeyword  land lazy let match
 syn keyword  ocamlKeyword  method mutable new of
 syn keyword  ocamlKeyword  parser private raise rec
 syn keyword  ocamlKeyword  try type
-syn keyword  ocamlKeyword  val virtual when while with
+syn keyword  ocamlKeyword  value virtual when while with
 
 syn keyword  ocamlType     array bool char exn float format int
 syn keyword  ocamlType     list option string unit
 
-syn keyword  ocamlOperator asr lor lsl lsr lxor mod not or
+syn keyword  ocamlOperator asr lor lsl lsr lxor mod not 
 
-syn keyword  ocamlBoolean      true false
+syn keyword  ocamlBoolean      True False
 syn match    ocamlConstructor  "(\s*)"
 syn match    ocamlConstructor  "\[\s*\]"
 syn match    ocamlConstructor  "\[|\s*>|]"
@@ -177,7 +177,7 @@
 syn match    ocamlOperator     "::"
 syn match    ocamlOperator     "<-"
 syn match    ocamlAnyVar       "\<_\>"
-syn match    ocamlKeyChar      "!"
+" syn match    ocamlKeyChar      "!"
 syn match    ocamlKeyChar      "|[^\]]"me=e-1
 syn match    ocamlKeyChar      ";"
 syn match    ocamlKeyChar      "\~"
@@ -203,7 +203,7 @@
 
 syn sync match ocamlDoSync      grouphere  ocamlDo      "\<do\>"
 syn sync match ocamlDoSync      groupthere ocamlDo      "\<done\>"
-syn sync match ocamlEndSync     grouphere  ocamlEnd     "\<\(begin\|object\)\>"
+syn sync match ocamlEndSync     grouphere  ocamlEnd     "\<object\>"
 syn sync match ocamlEndSync     groupthere ocamlEnd     "\<end\>"
 syn sync match ocamlStructSync  grouphere  ocamlStruct  "\<struct\>"
 syn sync match ocamlStructSync  groupthere ocamlStruct  "\<end\>"
@@ -221,8 +221,6 @@
     command -nargs=+ HiLink hi def link <args>
   endif
 
-  HiLink ocamlBraceErr     Error
-  HiLink ocamlBrackErr     Error
   HiLink ocamlParenErr     Error
   HiLink ocamlArrErr       Error
 
@@ -282,3 +280,5 @@
 let b:current_syntax = "ocaml"
 
 " vim: ts=28
+
+



-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners