This page is out of date!!!!! GtkSourceCompletion has been integrated into GtkSourceView
Introduction
The scope of this page is discuss about API, improvements/changes and TODO tasks to intregate this library into GtkSourceView. If you want to see the GtkSourceCompletion documentation, go to http://gtksourcecomple.sourceforge.net/
TODO tasks
- Renaming gsc-utils to gtksourcecompletion-utils (FIXED)
- Create an user request trigger:
<control>return raise the trigger
- filter current proposal when the user writes.
- gtksourcecompletiontrigger-autowords
- Set a better name
- Define when the autocompletion must to be triggered (currently on 3 characters written without separators) (FIXED)
- When the autocompletion is shown, filter the current proposals instead of retrigger the event. (FIXED)
- Add page order (FIXED!!)
- Bug with select-on-show property and the filter (FIXED)
Current issues
GscInfo: There is not a mechanism to manage calltips, we use GscInfo by hand. I don't know if we want to change it.
GscProposal: Works fine but we can simplify the use by adding something like a new gsc_proposal_set_apply_func function. If we want to change the default apply function, we need to create a new object inheriting from GscProposal and overwrite the apply function. In the 99% of cases only setting the apply function is enough.
GscPopup position: Currently GscManager show allways under/upper the GtkTextView cursor. I think we need to add a property like "manage-position" and, if it is FALSE, the manager do nothing and is the user who sets the popup position by hand (centered on screen, allways up etc.)
Focus problem: Currently we cannot set the focus into the GscPopup nor the GscInfo. Do we need to set the focus on these widgets? I have found how to (un)set the focus programmatically but not with the mouse.
Triggers: Currently we register the trigger and GscManager uses the trigger name to search the providers. We need to think about add two default triggers: user request trigger and autocompletion trigger. Think in gedit plugins: if I have a plugin and I want to register a provider when the user want to show the completion by hand. Another plugin have other provider and wants the same. Who register the trigger? If plugin 1 creates a trigger when the user press <contro>Return but the plugin 2 creates a trigger with different when the user press <control>Return, the completion will only call to the first provider. We need two standard triggers to solve this problem.
