[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