[Geany-Devel] Querying current file and cursor location
thomasyoung at free.fr
Fri Jan 18 09:36:46 UTC 2013
Hmm.. not sure what happens if the filename is UTF-8.
Basically, where some existing code (which is documented as supporting
UTF-8 filenames) was doing;
filename = DOC_FILENAME(documents[i]);
I am doing instead:
filename = DOC_FILENAME(doc);
pos = sci_get_current_position(doc->editor->sci);
line = sci_get_line_from_position(doc->editor->sci, pos);
col = sci_get_col_from_position(doc->editor->sci, pos);
g_string_append_printf(location, "%s:%d:%d\n", filename, line + 1, col);
On 18/01/13 09:10, Thomas Young wrote:
> Cheers Steve.
> Ok, I changed spaces to tabs, and a patch from diff output is attached.
> Will try and do things more properly next time!
> On 17/01/13 17:15, Steven Blatnick wrote:
>> I'm new too, but the first time I submitted something, they took a patch
>> I attached to an email sent to this mailing list. Subsequent
>> submissions, I signed up for a github account and forked geany and
>> geany-plugins. Using git hub, changes can be submitted through a "pull
>> request". I also signed up to SourceForge for submitting bugs.
>> Here is where I read about the process:
>> So far I've found the people on this project have been helpful and
>> friendly compared to my minor previous experiences with open source
>> Welcome :-)
>> Steven Blatnick
>> On 01/17/2013 06:17 AM, Thomas Young wrote:
>>> I've hacked a small change into Geany locally, to help with
>>> integration with gdb.
>>> Basically, what I've done is to add a '--print-location' command line
>>> option, which essentially just duplicates the functionality of the
>>> existing '--list-documents' option (through main.c/h and socket.c/h),
>>> but with the actual string generation bit that corresponds to
>>> build_document_list() changed to the following:
>>> static gchar *build_location(void)
>>> GString *location = g_string_new(NULL);
>>> const gchar *filename;
>>> gint pos, line, col;
>>> GeanyDocument *doc = document_get_current();
>>> filename = DOC_FILENAME(doc);
>>> pos = sci_get_current_position(doc->editor->sci);
>>> line = sci_get_line_from_position(doc->editor->sci, pos);
>>> col = sci_get_col_from_position(doc->editor->sci, pos);
>>> g_string_append_printf(location, "%s:%d:%d", filename, line +
>>> 1, col);
>>> g_string_append_c(location, '\n');
>>> return g_string_free(location, FALSE);
>>> So what the overall change does then is basically to allow you to
>>> query for the currently selected file, and current cursor location
>>> within that file, from outside of geany, like so:
>>> thomas at MS-7752 ~ $ geany --print-location
>>> I can then use this in a python command within gdb (running completely
>>> separately within a terminal) to set break points for positions
>>> selected in files in Geany within having to actually type the whole
>>> filename and line number bit each time.
>>> This was based on the nightly build for January 17th, and seems to be
>>> working correctly.
>>> Should I submit a patch for this change?
>>> If so, how?
>>> (Not used to this whole open source malarky!)
>>> I got the nightly build archive instead of using git, but I have
>>> copies of the source archive both before and after the change.
>>> Is it possible for this change (or something similar) to be included
>>> in the Geany mainline?
>>> Best regards,
>>> Devel mailing list
>>> Devel at lists.geany.org
>> Devel mailing list
>> Devel at lists.geany.org
> Devel mailing list
> Devel at lists.geany.org
More information about the Devel