4367 Commits

Author SHA1 Message Date
Colomban Wendling
adbd162c7b Also consider tags up to date if realtime parsing is active
This makes symbols_get_current_function() more accurate by using TM
data even on a modified file if realtime tag parsing is enabled, thus
if the data has reasonable chances to be correct.
2012-09-17 14:44:33 +02:00
Colomban Wendling
df3d35dab1 No need to update GdkDragContext:action
Updating GdkDragContext:action is not needed and this field is private
anyway.
2012-09-16 00:28:46 +02:00
Colomban Wendling
b58995c9fc Don't access private field GtkNotebook::event_window 2012-09-16 00:26:43 +02:00
Frank Lanitz
987c13e26f Added Basque translation provied by Asier Iturralde Sarasola 2012-09-15 19:10:53 +02:00
Colomban Wendling
faeeaf4bd2 Check the VTE library we're loading actually have all symbols we need
This prevents a crash if the VTE library we happen to load lacks a
symbol we need, which can happen e.g. if the user passed an improper
library to the --vte-lib command-line option or if the VTE library is
loadable but broken.
2012-09-13 16:34:18 +02:00
Colomban Wendling
da5bb7f0e1 Don't access GtkColorSelectionDialog fields directly
Also don't hack around and handle clicks on the dialog's buttons but
rather simply handler the dialog's response.
2012-09-13 16:34:18 +02:00
Colomban Wendling
72db3a711e Don't use deprecated GtkObject 2012-09-13 16:34:18 +02:00
Colomban Wendling
96afed1e9c Don't access GtkFontSelectionDialog fields directly
Also don't hack around and handle clicks on the dialog's buttons but
rather simply handler the dialog's response.
2012-09-13 16:34:18 +02:00
Colomban Wendling
49f6ebbd0a Don't use gtk_widget_hide_all(), deprecated in 2.24 2012-09-13 16:34:18 +02:00
Colomban Wendling
926744b4b7 Don't use pre-GObject types and macros 2012-09-13 16:34:18 +02:00
Colomban Wendling
8b181f7c79 Don't access GtkSelectionData fields directly 2012-09-13 16:34:18 +02:00
Colomban Wendling
593fef7fa0 Don't access GtkWidget:parent directly 2012-09-13 16:34:18 +02:00
Colomban Wendling
c7f6997361 Don't access GtkNotebook fields directly 2012-09-13 16:34:18 +02:00
Colomban Wendling
2d878c8a5d Don't use deprecated GtkNotebookPage 2012-09-13 16:34:18 +02:00
Colomban Wendling
4d16735380 Don't access GtkDialog fields directly 2012-09-13 16:34:18 +02:00
Colomban Wendling
5ada77df70 Don't use deprecated gtk_box_pack_start_defaults() 2012-09-13 16:34:18 +02:00
Enrico Tröger
8171af611f Don't set the focus to the editor widget when clicking a symbol while holding Control
When clicking a symbol in the Symbols sidebar and holding the Control modifier key, don't
set the focus to the editor widget so further navigation in the Symbols sidebar with keys
is possible.
2012-09-09 16:05:58 +02:00
Colomban Wendling
49dafc8536 Use namespaces icon for Ruby modules
It's not perfect but better than nothing since other tags have icons.
2012-09-06 20:43:49 +02:00
Colomban Wendling
8f0ddfe4ef Merge branch 'printing-with-scintilla'
Closes #3475444, #2804000 and #2629121.
2012-09-06 18:45:26 +02:00
Nick Treleaven
00714db69c Improve collapsing fold behaviour when start point is offscreen
When collapsing a fold range whose starting line is offscreen,
scroll the starting line to display at the top of the view.
Otherwise it can be confusing when the document scrolls down to hide
the folded lines.
2012-09-05 17:13:34 +01:00
Lex Trotman
f53f37c578 Save encoding in session as text
Since reading locale and reading encodings from within files by regex
can find encodings not on the Geany list, saving as text ensures that
any encoding found can be saved in the session, otherwise a file can
be opened but will not re-open because the encoding cannot be saved
in the session.  Since numeric encoding names exist prefix the text
name by 'E' so they can be distinguished from saved numeric indexes.
2012-09-03 18:36:39 +10:00
Miguel Sánchez de León Peque
e469aa27e0 Update VHDL parser to display blocks in the symbols list 2012-09-02 19:42:25 +02:00
Colomban Wendling
66b93d2d8d Fix "mark all" search feature when using regular expressions
Use the proper, full-featured, regular expression engine we use
everywhere else rather than Scintilla's stripped-down one.

Closes #3564132.
2012-09-02 14:47:07 +02:00
Colomban Wendling
69d8295c5e Don't try to unref NULL regex 2012-09-02 14:17:34 +02:00
Colomban Wendling
b82134e021 printing: Fix line number margin border position 2012-08-27 21:28:46 +02:00
Frank Lanitz
2b163c367d Adding Hebrew translation 2012-08-25 17:11:52 +02:00
Colomban Wendling
ce742b45dd Remove spurious semicolons 2012-08-24 20:20:09 +02:00
Colomban Wendling
d80bc7ce56 Update FSF address
Closes #3557875.
2012-08-24 19:25:57 +02:00
oco
e20a57927d Use all supported keyword sets for Scintilla Forth lexer
Submitted on geany-devel mailing list
2012-08-16 18:35:27 -07:00
Matthew Brush
7b65d76d5f Fix comment style and wording from last commit
Don't use C99/C++ style comments and elaborate a bit on the purpose
of the call.
2012-08-16 17:52:22 -07:00
Yosef Or
e1a1c54d78 Keep code direction LTR 2012-08-16 17:37:01 -07:00
Matthew Brush
7193a1161b Minor style changes from last commit 2012-08-10 18:19:54 -07:00
Alexander Eberspächer
a17e37bcd8 Test against the lexer instead of the filetype when computing
indentation. This fixes Cython indentation.
2012-08-10 11:34:56 +02:00
Matthew Brush
9a63e05f63 Change plugin manager's OK button response to GTK_RESPONSE_OK
Used to be GTK_RESPONSE_CANCEL for some reason.
2012-08-09 22:36:03 -07:00
Matthew Brush
bc5b68822d Remove indirection from callback handler 2012-08-09 22:35:16 -07:00
Matthew Brush
e62bec43fc Use g_build_filename() instead of g_strconcat() for paths 2012-08-09 18:21:43 -07:00
Colomban Wendling
c2c6a70515 Open files with leading or trailing whitespaces through the socket 2012-08-08 15:35:46 +02:00
Colomban Wendling
d152c5ce22 Properly indent even if the indenting character isn't the last one
For all languages, this change allows comments at the end of the
checked line, e.g.:

	if 42:  # magic number
		print("I'm indented!")

For languages with braces, it also properly indent if there is code
on the same line as the opening brace, e.g.:

	if (42) { printf("some code here...");
		printf("...but I'm properly indented");
	} else { /* comment! */
		printf("normal block is fine too, of course");
	}

Although this is uncommon (and quite ugly) it's valid and should be
handled properly.
2012-08-07 17:50:17 +02:00
Colomban Wendling
4c2d8998d7 Fix a reference to a function in the documentation 2012-08-07 15:37:38 +02:00
Colomban Wendling
cb54ccf8e1 Merge branch 'scintilla-update' 2012-07-30 17:06:00 +02:00
Colomban Wendling
4db0813a79 Rewrite GTK printing using Scintilla
We used to draw the pages to print ourselves, but it is a tedious and
error-prone task (and we did made mistakes) that Scintilla would do
better by itself.  So, rewrite the GTK (e.g. non-external) print code
to use Scintilla's built-in capabilities of drawing the buffer's
content on the pages.

Not only this makes the code a lot simpler and shorter, but it gives a
more accurate render (proper handling of tab stops, wrapping on word
boundaries, no missing character when a wrapped line spans on multiple
pages, ...), and it is noticeably faster (around 3 times).

Additionally we now paginate properly, which fixes printing starting
after page 1 or printing non-contiguous pages (we used to always print
starting from page 1 and counting, no matter what pages were selected).

However, note that obviously the render is not the same, even though
it's quite similar.
2012-07-30 03:37:00 +02:00
Colomban Wendling
5772178d3a printing: Avoid an useless allocation 2012-07-30 01:38:59 +02:00
Colomban Wendling
5110fab0e1 Fix search and replacement of empty matches (again)
f4eb89cd7d79738a9c6c45e29abdd9d15d22e4fd was partially wrong and
removed legitimate re-matches when two different matches ends at the
same position.  Particularly, the replacement changes are reverted.

Interestingly, Perl and Python does not agree on how to do such
replacements.  Python does what I did in the above-cited commit, e.g.
doesn't replace twice if the match end overlaps, but Perl does.
Perl looks more legitimate here since both Python and Perl does find
the overlapping matches when performing a search, so Python is the odd
guy here doing it differently on replace than it does upon search.

For example, replacing using the pattern "a?(?=b)" and the replacement
string "_":

	Python: ababcdb -> _b_bcd_b
	Perl:   ababcdb -> __b__bcd_b

But finding using the same pattern on the same input gives the same
results on both:

	Python: ababcdb -> ['a', '', 'a', '', '']
	Perl:   ababcdb -> ['a', '', 'a', '', '']

Anyway, GLib and us claim to support "Perl-compatible regular
expressions", so we gotta follow Perl, especially in such doubtful
situations.
2012-07-28 19:23:37 +02:00
Colomban Wendling
95d767f873 Document sci_get_lexer()
This function is part of the plugin API but missed its documentation,
leading to it not appearing in the generated API documentation.
2012-07-28 00:32:26 +02:00
Colomban Wendling
f4eb89cd7d Fix search and replacement of empty matches
Regular expressions might match empty ranges, which weren't handled
properly, but generally simply omitted.

For example, the regular expression "^$" (empty line) never matched
because we assumed empty results were not interesting, and actually
needed more care in the code.  Alike, an expression matching only on
its lookahead part, like "a?(?=b)" against "b", would stop further
search, although it could even match a non-empty range if "ab" is
present later in the input.  This last kind of expressions also lead
to double-replacement because they first matched "ab" and then "b"
alone when re-matching after the "a" replacement.

This commit fixes:
 * searching when the matched range is empty;
 * step-by-step search when matching an empty range;
 * double replacement when the pattern re-matches an empty range
   straight after a replacement;
 * replacement to and empty string when the matching an empty range.

A know issue though is the step-by-step replacement that won't replace
an empty match but rather find the next match.
2012-07-28 00:32:26 +02:00
Colomban Wendling
a091238617 Fix searching out of document range
If a search matched the very last character of the document, next
search attempt started out of the document bounds.  This even lead
to an infinite loop due to an improper sanity check.

By the way, this fixes matching of contiguous results, as the next
search used to improperly skip one character after the result.
Although this looks like a huge issue, it was actually visible almost
only on the match count since the whole matching line was printed.
2012-07-28 00:32:26 +02:00
Nick Treleaven
f90bdc5957 Only set Find in Files directory once per-document
Use the current document's directory unless the directory field has
already been edited and the current document has not changed.
Otherwise, prepend the current document's directory to the drop-down
history in case it is wanted.

This is useful to avoid losing the edited directory when it is less
likely the user wants to use the current document's directory.
2012-07-26 16:13:34 +01:00
Matthew Brush
5fff1e69c2 Add NULL guard for reloading "untitled" documents
Previously it was using a GLIB assertion which shouldn't be used
to detect a normal condition and so it caused a warning on the
console output when clicking "Reload" with an "untitled" document.
2012-07-24 17:56:29 -07:00
Colomban Wendling
d11f9a51b9 Rely on GModule for adding or not the --export-dynamic linker flag
We explicitly use GModule's .pc since 7b2f0fe, and it provides the
appropriate flag: we don't need to add it ourselves anymore.  Moreover,
since this flag is not needed (nor available) on all platforms (e.g.
Windows or MacOS X), it is safer to let GModule deal with adding it
anyway.
2012-07-17 23:09:00 +02:00
Colomban Wendling
4cdcaa22e6 Update for new Scintilla styles 2012-07-14 15:30:03 +02:00