[Geany-Devel] splitwindow2

Lex Trotman elextr at xxxxx
Thu Oct 10 10:49:17 UTC 2013

On 10 October 2013 21:03, Thomas Martitz <
thomas.martitz at student.htw-berlin.de> wrote:

> Hello,
> I just wanted to let you know that I'm working on a new splitwindow
> implementation and I would like to have early input. But, also as a
> warning, I'm progressing only slowly because I'm at the final phase of my
> master thesis which currently needs more attention that Geany hacking.

Breaks away from the thesis are good, or so I used to tell myself ;-)

> Anyway, we all know about the limitations of the splitwindow plugin. They
> include (not a complete list):
> - the other view can only have one document
> - you cannot undo/redo: you need to select the tab in the main notebook to
> do that
> - state is not saved/restored across Geany restarts
> - it's completely awkward because the other view shows a doc that's also
> in the main view, editing in the other view will change the main view at
> the same time.
> - you cannot toggle between the views with a keybinding (e.g. ctrl+tab)
> - weird focus behavior
> - more...
> My plan is to reimplement splitwindow using a different approach: by
> having two real, independemt notebooks, one primary and one seconary.

Yes please, editing .hpp and .cpp at the same time will be a great step

> New docs will be opened in the primary one by default, but can be moved to
> the secondary one at will. This means that no document can be shown in both
> at the same time which makes it a loss less awkward. It also lets us lift
> the other limitations:
> - undo/redo will work
> - state can be saved across restarts (config file format will probably
> need some changes for this)
> - toggling with keybindings between views can work
> - you can arbitrarily assign docs to views using different methods

Whilst looking at two places of the same document is also a use-case of
split windows, if this restriction allows the initial implementation of a
proper split window system more easily then lets start with it.  All I
would say is try not to make it too hard to expand later.

> The nice things about splitwindow that should be probably be kept:
> - chose between horizontal and vertical split
> - automatic sizing of the views

So long as manual sizing is still available, fine, Geany is not smart
enough to always know what width/height I need.

> - anything else?
> Unfortunately Geany's core is pretty hardcoded as to assume one (and only
> one) notebook for documents. This means that for this various changes to
> Geany core are necessasry, some of which may be difficult to do without
> breaking the plugin API/ABI. Some are gonna hate this but I'm not currently
> planning do this as a plugin because the core needs a lot of changes anyway
> for breaking the single notebook assumption. But I'm very open for
> discussion which is why I'm writing this early.

Its gotta happen at some point, so long as the changes are sensible and for
a good reason then its ok, but I would probably say that means make the
change after the next release, so there is no rush on trying to get a big
(well big relative to recent ones) API change tested and into the plugins.

> I already have an experimental version up and running that doesn't even
> require all that much changes[1] and it seems to work nicely. See this[2]
> screenshot.

Will look at it and try it as soon as I can, but some guy on IRC keeps
prompting for feedback :)

> So, any opinions?

For me this is second only to multiple windows as an editing feature that
Geany needs, and I expect it is an important step towards multiple windows.


> [1]: https://github.com/kugel-/**geany/tree/splitwindow2<https://github.com/kugel-/geany/tree/splitwindow2>
> [2]: http://www.alice-dsl.net/**simonemartitz/default/**splitwindow2.png<http://www.alice-dsl.net/simonemartitz/default/splitwindow2.png>
> 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/20131010/2989a675/attachment.html>

More information about the Devel mailing list