[Geany-Devel] Smart tabs

Lex Trotman elextr at xxxxx
Wed Jul 17 08:01:54 UTC 2013


On 17 July 2013 16:53, Thomas Martitz
<thomas.martitz at student.htw-berlin.de>wrote:

> Am 17.07.2013 00:49, schrieb Thrawn:
>
>  Thomas Martitz wrote:
>>
>>> Bah, this "everything must be a plugin" really annoys me...
>>> What's wrong with you accepting new code in the core?
>>>
>> Actually, I agree that custom indentation schemes are too troublesome to
>> include in core...
>> unless someone, somehow, has a spark of genius allowing them to invent a
>> perfect
>> one-scheme-fits-all approach. This idea - particularly the Lua script -
>> is far from that.
>>
>>
> I didn't mean to suggest there is a one-scheme-fits-all solution. The core
> can totally have customizations to a generic algorithm (or even custom
> algorithms) on a per-language basis. What I question is the enforcement (I
> perceive it as such) to introduce all new functionality via (perhaps
> unreliable) plugins even if essential core features (indentation is clearly
> one of them) are concerned. There seems little, if any, consideration
> whether new stuff should go into the core or plugins. The plugin approach
> is the default and it seems hard to improve the core.


Hi Thomas,

There are two questions:

1. Should a general solution to language specific indentation go in core,
most definitely yes, when we know what that is !!!

So far such a solution has not been found, Colomban's regex prototype was
closest but still had a high proportion of incorrect results leading to the
conclusion that the approach was not capable enough.
Implementing a bad approach in core and then having to try to fix/expand or
replace it is just a waste of time.

So as I said trying out indentation schemes in plugins makes it easier to
replace them (but the user can always still use the old one if they like it
better, they can't do that with in-core code that has been removed).  There
is a PR that demonstrates that plugins can be autoloaded by filetypes, so
each plugin only needs to do one language, making them simpler and easier
to get right.

Then it will be possible to identify commonality that is suitable for
implementing in core.

2. Should this particular function Thrawn is offering be in core?  Since it
is limited to one situation in one language (or group of {} languages) and
he wants to implement it in Lua, no.


>
> Plugins are nice, but still not ideal. The authors might not be
> dependable, the code quality can be bad, they are not automatically loaded
> (which is I guess the point of them, however it means that users cannot not
> be automatically exposed to new functionality) and there's non-zero
> overhead in both memory usage and performance. The first two obviously
> don't apply for plugins that ship with Geany.
>

Now that you mention it, there is probably no reason why we could not
default enable some of the plugins shipped with geany, its just having the
settings in the default config file.  And possibly some more plugins could
move to core (+1 for Enrico's Addons TODO for example :)

Note that it is probable that Geany core could provide some more support
for plugin indentation, but as yet nobody is sure what that consists of.

Cheers
Lex

>
> Best regards.
>
> ______________________________**_________________
> Devel mailing list
> Devel at lists.geany.org
> https://lists.geany.org/cgi-**bin/mailman/listinfo/devel<https://lists.geany.org/cgi-bin/mailman/listinfo/devel>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.geany.org/pipermail/devel/attachments/20130717/34f5947d/attachment-0001.html>


More information about the Devel mailing list