From: Martin S. <ma...@ly...> - 2005-05-10 22:04:41
|
Nick Roberts <ni...@sn...> wrote: > Within Emacs CVS, I think both cc-mode.el and cmacexp.el are part of > Emacs. Maybe so, but it's more relevant to note what the respective maintainers are inclined to support. If the CC Mode maintainers aren't prepared to support a certain feature then it's better to not add that feature to the cc-*.el files. That avoids confusion with bug reports sent to the wrong places, bitrot and possible lossage in merges. In this particular case the added feature was outside the scope of CC Mode, so it's good that it was taken out again (although I'm sure the feature in itself is very neat). The scope of CC Mode isn't spelled out anywhere, so I don't blame anyone for missing it. Anyway, it is something like this: o Provide functionality for syntax parsing in the supported languages. o Implement basic major mode operations for the supported languages, meaning buffer setup, movement/mark commands and miscellaneous simple tools for handling language constructs (e.g. aligning the backslashes in cpp macros). o Implement syntactically sensitive indentation and font locking. Some noteworthy things that are outside the scope: o Tracking of symbols, e.g. for providing tooltips containing symbol docs and type info etc, or for locating symbol definitions. o Stuff that requires knowledge of the compilation environment, e.g. pulling in include files, expand macros, tracking cross file references. o Templates for source constructs, e.g. to quickly insert a more or less complete class or method. These are not left out just because I personally don't consider them nice features (I do), but because implementing those things well is nontrivial and requires quite a bit of dedicated effort. I, and I probably speak for Alan Mackenzie as well here, have enough with getting the things inside the current scope to work as well as we would like. Also, there's no particular reason why stuff like that can't be in separate packages. |