[Geany-Users] <DKIM> Re: How to place comment tags /* ... */ around selection ?

Colomban Wendling lists.ban at xxxxx
Fri Feb 2 18:24:28 UTC 2018


Le 02/02/2018 à 02:44, j.dunn at piments.com a écrit :
> On 02/02/18 09:15, Lex Trotman wrote:
>> […]
>>
>> In fact the commenting code does not understand the language at all,
>> it just applies the character sequences configured in the filetype as
>> text, single line comments for preference (after all the menu items
>> are "comment line") or open/close comments as a fallback.
> 
> This seems unnecessarily restrictive.  C has two comment formats :  //
> and /**/  ;  it would be good have a means of using either : presumably
> a secondary hot key.  That could also cover OP's requirement.

Geany will use multi-line comment style (with open and close sequences)
if there's no single-line sequences defined for that filetype.
The reason Geany prefers the single-line comments is that it's a lot
more robust: for example, if in C you try to wrap the following with
multi-line comments:

foo(); /* do something */

it will lead to

/* foo(); /* do something */ */

which is illegal syntax (the comment ends at the first "*/", not the
last one.
This is because C multi-line comments don't nest, and many languages
have the same issue.  However, single-line comments don't have that problem.

An even more interesting example could be

regex_replace(str, ".*/", "");

which would lead to the illegal and even more tricky

/* regex_replace(str, ".*/", ""); */


Also, the same problem applies to commenting a portion of a line,
because you need to use the "/* */" kind and its problems.  So
supporting that, while very nice, would be tricky and very
language-specific, and I can't even think of a perfect solution, as
you'd have to replace the "*/" sequences inside the commented area with
something else, yet restore it on uncommenting.

Anyway, that's a few reflection points :)

Cheers,
Colomban


More information about the Users mailing list