[SVN] r5111 (OCaml)

William D. Neumann wneumann at cs.unm.edu
Thu Sep 7 18:00:15 UTC 2006


Changelog:

* Fixed bug in meta.type.ocaml which caused the type scope to propagate beyond it's bounds
if a "blank" line beneath it actually contained some whitespace.  Also added `let` to the 
`type` option to end the meta.type scope so code like:
        module AMap = Map.Make (struct type t = int let compare = (-) end)
highlights properly and so the type scope doesn't propogate too far in cases like:
type t = int
let x = 10

* In meta.match.ocaml, added a rule so that polymorphic variant abbreviations, such as 
#pmv_abbr are given the entity.name.class.variant.polymorphic.ocaml scope, rather than 
the scopes keyword.operator.symbol for the `#` and variable.parameter.ocaml for the 
typename part.  Perhaps the name should be something like 
'entity.name.class.variant.polymorphic.abbreviation.ocaml', but that might be silly.

* In meta.object.ocaml, added a rudimentary meta.object.constraint.ocaml scope and tossed 
a match for #class_type_name in its patterns sections.  This really needs bettering 
eventuually, but it serves as a placeholder and as a quick hack it more or less works.

* Added rudimentary scopes meta.module.signature.ocaml and meta.module.structure.ocaml, 
moved the previous meta.module.ocaml to meta.module.use.ocaml, and added a new 
meta.module.ocaml for matching module definitions, much like meta.class.ocaml.

NOTES:
The meta.object.ocaml scope is a bit fragile in its end match.  The `end` can be at the 
same indentation as the opening `object`, but if it's not composed of the same whitespace 
sequence (e.g. one is tabs, the other is spaces), then the meta.object scope doesn't end.  
This problem now exists in the meta.module.signature.ocaml and 
meta.module.structure.ocaml scopes as well, as I borrowed the structure for them from 
meta.object.ocaml.

Changed:
U   trunk/Bundles/OCaml.tmbundle/Syntaxes/OCaml.plist



More information about the textmate-dev mailing list