* emacs ident @ 2011-08-17 16:04 pingved 2011-08-17 19:52 ` Alan Mackenzie 0 siblings, 1 reply; 3+ messages in thread From: pingved @ 2011-08-17 16:04 UTC (permalink / raw) To: emacs-devel I need to create indent for code of next format (c-mode or any other c-similar mode): void Test(void) { (3space)DWORD abc; (4space)exit(0); (4space){ (4space)(3space)DWORD a; (4space)(4space)exit(0); (4space)} } But emacs doesn't support this style :( Can Developers fix this? THX! ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: emacs ident 2011-08-17 16:04 emacs ident pingved @ 2011-08-17 19:52 ` Alan Mackenzie 2011-09-20 13:24 ` Nix 0 siblings, 1 reply; 3+ messages in thread From: Alan Mackenzie @ 2011-08-17 19:52 UTC (permalink / raw) To: pingved; +Cc: emacs-devel Hello, pingved. On Wed, Aug 17, 2011 at 08:04:29PM +0400, pingved@gmail.com wrote: > I need to create indent for code of next format (c-mode or any other > c-similar mode): > void Test(void) { > (3space)DWORD abc; > (4space)exit(0); > (4space){ > (4space)(3space)DWORD a; > (4space)(4space)exit(0); > (4space)} > } It's not entirely clear what you're asking for here. What is the criterion which distinguishes 3 spaces from 4 spaces (or even 7 or 8)? > But emacs doesn't support this style :( That's the first I've heard of it. ;-) If you've not done so already, read the CC Mode manual which should have come with your Emacs. In particular, read the chapters "Indentation Engine Basics" and "Customizing Indentation". It may well be that you might have to write a function to put on `c-special-indent-hook', depending on how unsystematic your indentation scheme actually is. As a matter of interest, why do you want/need such a wierd style? > Can Developers fix this? There's nothing broken, so there's nothing to fix. > THX! -- Alan Mackenzie (Nuremberg, Germany). ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: emacs ident 2011-08-17 19:52 ` Alan Mackenzie @ 2011-09-20 13:24 ` Nix 0 siblings, 0 replies; 3+ messages in thread From: Nix @ 2011-09-20 13:24 UTC (permalink / raw) To: Alan Mackenzie; +Cc: pingved, emacs-devel On 17 Aug 2011, Alan Mackenzie stated: > Hello, pingved. pingved gave no answer, so I think I'll try (though I don't use this indentation style). > On Wed, Aug 17, 2011 at 08:04:29PM +0400, pingved@gmail.com wrote: >> I need to create indent for code of next format (c-mode or any other >> c-similar mode): > >> void Test(void) { >> (3space)DWORD abc; >> (4space)exit(0); >> (4space){ >> (4space)(3space)DWORD a; >> (4space)(4space)exit(0); >> (4space)} >> } > > It's not entirely clear what you're asking for here. What is the > criterion which distinguishes 3 spaces from 4 spaces (or even 7 or 8)? From its appearance, I'd say it's whether it's a variable declaration. i.e. where we would write void test (int blah) { int abc = blah % 2; if (abc) { int womble = abc / 2; int splotz = abc * 2; printf ("%i, %i\n", womble, splotz); } test_this_as_well (abc); } pingved would write void test(int blah) { int abc = blah % 2; if(abc){ int womble = abc / 2; int splotz = abc * 2; printf("%i, %i\n", womble, splotz); } test_this_as_well(abc); } This seems to me to require substantial language understanding in order to reliably detect if a line is a variable declaration or not, and is almost certainly not implementable with cc-mode. Indeed, in C++, it is nearly impossible, as determing whether something is a variable declaration or a function call may require either a complete view of the whole translation unit above your current location, or, in the presence of exported templates, a complete view of the entirety of all translation units containing templates used by this one. This is obviously not practical for anything as incremental as cc-mode is, even if it contained a complete compiler for all languages under discussion. > As a matter of interest, why do you want/need such a wierd style? I think the idea is to make it look like indented first lines of paragraphs in printed books. This makes some sense: emulating typography is often a good idea (they have centuries more experience of making things legible than do we mere programmers). But in this case it seems... hard to do automatically. -- NULL && (void) ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2011-09-20 13:24 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-08-17 16:04 emacs ident pingved 2011-08-17 19:52 ` Alan Mackenzie 2011-09-20 13:24 ` Nix
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).