From: D. M. <d.m...@mf...> - 2006-07-26 16:24:16
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 I have a question for C#: There are a couple cpp-macro-like constructs: #if #else #end #region #endregion Is there a way of having #region, #endregion have an indent of 0 (indented normally) while having the rest of them indent to the far left while still keeping the same font-locking? - -- Moonfire Games - http://mfgames.com/ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFEx5ZloQW5MqE36NcRAqtIAJ92RSatT5OiD2B5RBa3S6kbLM0jogCgwMaF sKUvaKjS8Qti431wKUFjbtw= =4cqZ -----END PGP SIGNATURE----- |
From: Alan M. <ac...@mu...> - 2006-07-31 21:29:31
|
Hi, Dylan! On Wed, Jul 26, 2006 at 11:20:53AM -0500, D. Moonfire wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > I have a question for C#: > > There are a couple cpp-macro-like constructs: > > #if > #else > #end > > #region > #endregion > Is there a way of having #region, #endregion have an indent of 0 (indented > normally) while having the rest of them indent to the far left while still > keeping the same font-locking? You're getting something like this for the syntactic context: ((statement 4901) (cpp-macro)) I think you could write a custom line-up function for cpp-macro. This function should check whether it's looking at "#if" or "#region", and return either [0] or 0 depending. It's described on the manual pages "Indentation Calculation" and "Custom Line-Up". -- Alan Mackenzie (Munich, Germany) |
From: Dylan R. E. M. <d.m...@mf...> - 2006-08-02 00:46:14
|
That trick actually did it. This is what I came up with: ;; To use this indenting just put the following in your emacs file: ;; (c-set-offset 'cpp-macro 'csharp-lineup-region) (defun csharp-lineup-region (langelem) "Indent all #region and #endregion blocks inline with code while retaining normal column-zero indention for #if and the other processing blocks." (save-excursion (back-to-indentation) (if (re-search-forward "#\\(end\\)?region" (c-point 'eol) [0]) 0 [0]))) I got a tad confused with the last bit of (if), not sure how to do that, but this actually works the way I expected it. Cheers! |
From: Alan M. <ac...@mu...> - 2006-08-03 20:47:58
|
Hi, Dylan On Tue, Aug 01, 2006 at 07:46:05PM -0500, Dylan R. E. Moonfire wrote: > That trick actually did it. This is what I came up with: :-) > ;; To use this indenting just put the following in your emacs file: > ;; (c-set-offset 'cpp-macro 'csharp-lineup-region) > (defun csharp-lineup-region (langelem) > "Indent all #region and #endregion blocks inline with code while > retaining normal column-zero indention for #if and the other > processing blocks." > (save-excursion > (back-to-indentation) > (if (re-search-forward "#\\(end\\)?region" (c-point 'eol) [0]) 0 > [0]))) A small comment: you might prefer (looking-at "#\\(end\\)?region") here in place of re-search-forward. This would protect you against a garbage line looking like: asd sdf 780-= #endregion > Cheers! Likewise! -- Alan. |