[Geany-devel] Questions on inserting text & indentation
lists.ban at xxxxx
Thu Apr 29 17:13:25 UTC 2010
Nick Treleaven a écrit :
> On Thu, 29 Apr 2010 00:28:02 +0200
> Colomban Wendling <lists.ban at herbesfolles.org> wrote:
>> In my GeanyGenDoc plugin I was using sci_insert_text() to insert the
>> generated documentation comment; but I wanted to be able to indent the
>> inserted comment to follow the indentation at the insertion position.
>> I found editor_insert_text_block() which seemed quite interesting, but
>> it didn't do what I expected -- and still no indentation. Of course when
>> going a bit in the code, since I inserted my comment at the start of the
>> line, and editor_insert_text_block() adds the indentation that is found
>> between the start of the line and the insertion position… which are the
>> same in my case.
>> Then, I wondered how to fix my problem, and finally found a solution
>> that consists to insert at start of line + sci_get_line_indentation() .
>> But I have some questions:
>> 1) How editor_insert_text_block() is meant to be used to get the right
>> indentation, since (if I'm right) we need to insert at the right
>> position in the first line? Is the solution I've found the right one, or
>> is there a cleaner/simpler solution?
> Can you give a code example of what you're trying to do?
The real code can be found only through SF's VC viewer:
But let's explain a bit: I would insert a text block, and indent it to
respect the indentation of the insertion's line.
What I do is:
1) build a text block (line 326);
2) find *the line* at which insert it (I don't know the position, only
the line -- this is from a tag) at the start (lines 338-339);
3) convert that line information to position information as needed
4) insert the text block (line 351).
Of course step 3 is an implementation detail, and it's where I have the
My question is: "how am I supposed to insert a text block at the start
of a particular *line* for it to be indented as this line is indented?"
>> 2) If this is a good way to proceed, could we have
>> sci_get_line_indentation() in the plugin API? Even though it is easy to
>> reproduce  it would be nicer to have it directly.
> We can do, send a patch if you like. It sounds like it might be
> better to use editor_insert_text_block in this case.
Yeah I do so but it needs to already know at which *position* insert the
block. And the position where I want to insert is something like the
"smart start" of the line (start of the line + indentation).
Thanks for responding :)
More information about the Devel