[Geany-devel] Development of code re-formatting plugin

Colomban Wendling lists.ban at xxxxx
Thu Apr 12 16:53:47 UTC 2012


Le 10/04/2012 01:59, Lex Trotman a écrit :
> On 10 April 2012 09:05, Colomban Wendling <lists.ban at herbesfolles.org> wrote:
>> Hi,
>>
>> Le 09/04/2012 12:41, Lex Trotman a écrit :
>>> On 9 April 2012 20:08, Nayan Shah <nayan at nayanshah.com> wrote:
>>>> Hello,
>>>>
>>>> I am planning to develop a code re-formatting plugin for geany. I want it to
>>>> be more on the lines of Notepad++'s C++ re-indent plugin which is pretty
>>>> awesome.
>>
>> I don't know Notepad++, but I started a indenter plugin awhile ago, I'll
>> try to check where it is and make the source available if it can be
>> useful.  I should also finish it, but...
>>
>>>> The feature could be something like : user selects bunch of text and clicks
>>>> beautify or maybe it works on the whole file by default.
>>>>
>>>> Astyle <http://astyle.sourceforge.net/> is a small automatic formatter and
>>>> released under LGPL. It is pretty small with loads of options. and supports
>>>> C, C++, Java code.
>>>>
>>>> Can it be used for development of the plugin ?
>>>>
>>>> Any feedback / comments would be appreciated.
>>>
>>> Yes you could make a plugin to run astyle, but it would probably be
>>> easier to just use it as a custom command, see
>>> http://www.geany.org/manual/current/index.html#sending-text-through-custom-commands
>>
>> Unfortunately astyle does crazy stuff (like seeking back and forth) with
> 
> I can understand why it would do that to look ahead, but it would be
> good if it documented that it *does not* work with pipes.
> 
>> its input, making impossible to pipe data to it (actually it'll work
>> until the data size exceeds the OS's IO buffer size IIRC, but if it
> 
> Looking at the code it should give an error message if it can't seek
> in the file, so it should just generate no output, but maybe thats
> recent.

Or maybe I simply misremember what was the problem and it only truncated
the output, I'm not 100% sure, though I think it was worst than that.

>> exceeds that size astyle will just hang indefinitely).  Calling that
>> executable requires a real file then.  The plugin I talked about
>> previously has an astyle backend too, but it writes a temp file for the
>> very reason above.
> 
> Does that mean it is universal and can use any beautifier?

Well, "universal" is maybe a bit too presumptuous, but yeah, I wanted it
to support any intenter.   However, I made it "backend-based" style, so
it can use e.g. a library, but it then requires the backend to be
written, not simply a indenter program to exist.

> And maybe integrate Universal Indent GUI to set them up?

Isn't that a Qt program?  But yes, I wanted to do something like this --
actually each backend would export a set of options and a generic GUI
would display them and allow to edit them.

Cheers,
Colomban



More information about the Devel mailing list