GSoC: Show Me More

Last time we spoke the documentation was temporarily implemented using the GtkTooltip, making it simple to show the snippet of the documentation but imposible to make it interactive. That’s where the GtkPopover came in.

This widget provides options to mimic the behavior of the tool tip yet provides interface to customize the content to accommodate all the planned features. Now we can add more information from the documentation without taking up the entire screen.

Screen Shot 2017-06-25 at 15.29.04

Screen Shot 2017-06-25 at 15.29.07

The design aspect of the card is still bit lacking since I have still not committed to how the XML file with the documentation is going to be parsed. Balancing the fact that there is no need to analyze the entire file, yet some more knowledge of the structure would help with better ability to style the text.

The current implementation of documentation can be found here. Any feedback will be appreciated.

If the card doesn’t want to show up, you might want to check the right panel if you actually have the documentation. I haven’t found a centralized system for all the documentation but if you install a package *-doc the specific library it will be automatically added to your Builder through Devhelp, for instance:

  • gtk3-devel-doc
    • GTK+ 3 Reference Manual
    • GAIL Reference Manual
    • GDK 3 Reference Manual
  • glib2-doc
    • GLib Reference Manual
    • GIO Reference Manual
    • GObject Reference Manual
  • webkitgtk3-doc
    • WebKitGTK+ Reference Manual

GSoC: ToolTip Guidance

After first couple of days I’m starting to get an inkling of the outcome of the project. The basic thought is to provide in convenient way all the information about methods one has to constantly Google. It doesn’t get much more straightforward than being able to hover over the method you are writing and getting a little clue, similarly to the Visual Studio Code.

Screen Shot 2017-06-07 at 16.44.03

We need two things to make this happen, source where to find the information and an object to present it in. One place to get the infromation is throught the documentation that is already accesable throught GNOME Builder in the right panel. The URIs to the individual documentation pages and their keywords (such as the name of the methods) are already imported thanks to Devhelp. For a simple way to then get a text on hover is using the GtkToolTip.

Screen Shot 2017-06-07 at 16.42.42

The styling of the tool tip is very limited and so far the presented information can get bit messy especially when the description doesn’t fit on one line.

Screen Shot 2017-06-07 at 16.44.52

The styling is not the main limit, the tool tip is also not clickable because of the simple reason it disappears when you move the cursor. My vision is to make the documentation card bit more interactive. Due to getting information from the documentation we have a lot more information about the methods than just the input and output types.

Screen Shot 2017-06-08 at 11.19.55

Showing all the information just on hover might be bit too much so the card could have a expand button to show more to user and if even that is not enough of information refer the user to the documentation itself. So for the next part of the implementation I would like to work on hover provider that would be more inclined to customisation and could be used later by more features.

The implementation of this simple documentation card can be found here, even though it’s in it beginning stages I already found it quite practical. If the card doesn’t want to show up, you might want to check the right panel if you actually have the documentation. I haven’t found a centralized system for all the documentation but if you install a package *-doc the specific library it will be automatically added to your Builder through Devhelp, for instance:

  • gtk3-devel-doc
    • GTK+ 3 Reference Manual
    • GAIL Reference Manual
    • GDK 3 Reference Manual
  • glib2-doc
    • GLib Reference Manual
    • GIO Reference Manual
    • GObject Reference Manual
  • webkitgtk3-doc
    • WebKitGTK+ Reference Manual

GSoC: Initiation

It’s official, I got accepted to Google Summer of Code 2017 and it’s been awhile since I felt so excited and yet terrified at the same time. But primarily excited…I think. Since I was eligible for both GSoC and Outreachy I made a proposal for both, ended up getting selected for GSoC with my Outreachy proposal, goes to show how intertwined these programs are.

I honestly haven’t heard about the project until Carlos Soriano gave a talk about it at my university couple of months ago. “Be proactive” was the main phrase popping up throughout the presentation, so I did just that. I found my mentor Christian Hergert and started figuring out the ins and out of the GNOME Builder. Keep in mind I was quite new to the FOSS in general so the amount of information I was getting through seemed endless. While I was going down the rabbit hole I realized that I found myself working on a Builder as a form of procrastination while studying for my exams.

As result of my preparation for the application process my two more significant bug fixes/ feature were the addition of the retab, which is an option in the context menu to convert white spaces to either tabs or spaces. And the little pop up notification that signifies that the build has finished when your window is out of focus.

So now to the main part of the GSoC, the actual project I will be working on. The Documentation Cards for GNOME Builder. This neat feature will enable quick look up in the documentation especially for the newcomers. By clicking on the code the user will access a card shoving the relevant parts of documentation. Looking back this would probably save me a lot of time going back and forth between the browser. I had couple of ideas what more to add to the cards that could be useful to the user such as adding contact on the author (most likely a person that will know a lot about it) or being able to add cards as favorites. If you would like to suggest something you would find handy don’t hesitate to write it in the comments.

I honestly can’t wait for the summer when I can stop juggling my school and devote my full concentration to GNOME. I will update soon with progress.