[Geany-devel] Questions on inserting text & indentation

Colomban Wendling lists.ban at xxxxx
Thu Apr 29 18:59:40 UTC 2010


Nick Treleaven a écrit :
> On Thu, 29 Apr 2010 19:13:25 +0200
> Colomban Wendling <lists.ban at herbesfolles.org> wrote:
> 
>>> 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:
>> http://geany-plugins.svn.sourceforge.net/viewvc/geany-plugins/trunk/geanygendoc/src/ggd.c?revision=1316&view=markup#l_313
>>
>> 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
>> (lines 340-343);
>> 4) insert the text block (line 351).
>>
>> Of course step 3 is an implementation detail, and it's where I have the
>> "problem".
>> 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 [2] 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).
> 
> OK, I think I understand now ;-)
> 
> I think your solution is right. The function doesn't insert indentation
> on the first line.
OK, thank you for the confirmation.
I attach a patch that adds sci_get_line_indentation() and
sci_set_line_indentation() to the plugin API. I don't need the latter
but I have added it because I think they goes quite together; but if you
don't think so, I can update the patch to only include the get().

Regards,
Colomban
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-plugin-api-add-sci-get-set-line-indentation.diff
Type: text/x-patch
Size: 2883 bytes
Desc: not available
URL: <http://lists.geany.org/pipermail/devel/attachments/20100429/e36d7cc0/attachment.bin>


More information about the Devel mailing list