Show symbol outline pane on right of document
Fixes #1033
Assistance required re best way to restyle the outline sourcelist to match document.

@danrabbit I would appreciate your advice as to how to get the symbol list (which is a Granite.Widgets.SourceList) to follow the styling of the document wrt background and text color.
@jeremypw it is probably worth looking at and adapting this method, as setting the background to @tab_base_color seems to get us most of the way there:
https://github.com/elementary/code/blob/16d771627b6e04407a6779cc4cc70258e85192c9/src/Widgets/DocumentView.vala#L100-L121
![]() |
![]() |
![]() |
|---|
Perhaps renaming that method and defining a GTK CSS variable called @themed_bg or something could work, then we could use that in the various places we want to use that color?
@cassidyjames Thanks for the suggestion! I'll try that.
@cassidyjames Implemented your suggestion - thanks.
If we're moving this anyways, can we make it not be a plugin and just have it be part of the app?
I wonder if we should also add a menuitem to toggle its visibility like we have with the sidebar
Yes, it should not be too hard to move the code into a "SymbolOutline" subfolder of \src and bypass the plugin interface. As you say, an alternative way of toggling it will be needed.
The latest commit moves the outline code to the /src. Note that you should run it as a flatpak as it is not compatible with the existing plugin code. Otherwise you will need to delete the outline plugin from /usr/lib/x86_64-linux-gnu/io.elementary.files/plugins.
Should I include code to blacklist/overwrite the outline plugin in the same way as I did in #1151?
I have taken the opportunity to DRY the code to reduce duplication between the Vala and C outliners.
Need to fix some regressions.
I have added code to overwrite the old plugin when not installed as Flatpak in order to make development and testing easier. This can easily be reverted if considered unnecessary.
Removed "blacklist" code as it was not needed when the strip-trailing-spaces plugin was moved into main code.


