537 Commits

Author SHA1 Message Date
Colomban Wendling
048e6a6c3c Fix an assertion logic 2011-11-15 20:32:36 +01:00
Matthew Brush
d789c4d546 Queue colourise of the Scintilla widget after (re)setting type keywords 2011-11-12 18:15:28 -08:00
Colomban Wendling
8942bc810b Add Objective-C support
Based on a patch from Elias Pschernig, thanks.
Parser was taken from upstream CTags.

Closes patch#3325139.
2011-11-13 01:05:24 +01:00
Matthew Brush
9bffb94cc4 Real-time type keyword highlighting
* Add new function: document_update_tags().
* Refactor the various tag update functions into document_update_tags().
* Remove extra call to update the tags in document_new_file().
2011-11-11 16:08:26 -08:00
Colomban Wendling
3f31453ace Fix various integer sign and size issues 2011-11-06 01:12:42 +01:00
Matthew Brush
c1df8a7263 Use file type instead of lexer to decide if type keywords are supported
Not every filetype for a specific lexer implements type keywords even if the
lexer supports it.
2011-11-04 19:23:55 -07:00
Colomban Wendling
b55a30c2bf Build recent data for GTK ourselves
This prevents GTK of trying to fetch the necessary information like
MIME-type itself, which leads to a significant speedup (> 30%), as
well as using the real MIME-type we use rather than the GIO-guessed
one.
2011-11-04 00:11:21 +01:00
Colomban Wendling
0167f589b3 Small code cleanup
Use foreach_document() in a few places where appropriate and make
some code more consistent.
2011-11-03 19:22:40 +01:00
Matthew Brush
ff663c1678 Remove init_doc_struct() function from documents.c
This function was only used from document_create() and most of this code is
not needed since the memset() and g_new0() calls set the memory to all 0's,
which in this case should suffice to (re)set all the members to 0/NULL/FALSE.

Refactor so all the resetting to defaults code is done in remove_page()
only and then only do the required non-FALSE/NULL initialization in
document_create().

Move the remove_page() prototype to the top of the file and various other
minor changes in remove_page().
2011-11-02 23:24:10 -07:00
Matthew Brush
ea51c487d3 Use Scintilla's buffer directly for parsing tags 2011-11-02 21:50:34 -07:00
Matthew Brush
6ceb5ac164 Remove editor_lexer_get_type_keyword_idx() function
It was used only in one place in document_update_type_keywords() which
already did a similar check using the file type before calling this function.

Update HACKING file and very minor cleanup of other code in
document_update_type_keywords().
2011-11-02 20:18:12 -07:00
Nick Treleaven
de559ef5d4 Make document_save_file() show the Save As dialog when necessary
Previously an error message was shown if doc->file_name is NULL.

The Save As dialog is now shown if the document does not have an
absolute path. This is because the user should confirm where to save
the document in this case.

Although this changes plugin API behaviour, it seems the best way to
ensure the Save As dialog is always shown when needed so the user
knows where the document has been saved.
2011-11-02 15:17:17 +00:00
Nick Treleaven
f31a84869d Minor code cleanup for document_update_type_keywords()
Fix correctly checking result of editor_lexer_get_type_keyword_idx().
Do not check IS_SCINTILLA unnecessarily (this is covered by DOC_VALID).
Do not use G_[UN]LIKELY macros as this complicates code without any
real benefit (unless in a tight loop).
2011-11-01 16:07:52 +00:00
Nick Treleaven
fdd5537cc0 Use g_return_val_if_fail for some invalid NULL arguments 2011-10-31 17:22:39 +00:00
Nick Treleaven
b69198691a Add utils_filenamecmp(). 2011-10-31 17:08:23 +00:00
Matthew Brush
b1b88286cf Simplify updating Scintilla keywords on reload config and tab switch.
Remove type keywords caching function since it doesn't really speed up
anything and we don't care if the keywords change since they can/should
still be reloaded.  This also prevents "leaking" a static GString once
when the application closes and saves a call to g_string_free() when the
type keywords have changed.

Rename document_update_highlighting() to document_update_type_keywords()
since no re-highlighting is needed when updating Scintilla keywords.
Scintilla highlights the new keywords automatically so this saves a call
to queue_colourise().

Remove update_type_keywords() function since this is now all handled
in the document_update_type_keywords() function.  This function had a
comment about updating all documents when sci is NULL but it was never
used in this way since it was only called on document_load_config() which
always operates on a single document and the sci should not be NULL.
2011-10-19 21:39:17 -07:00
Matthew Brush
1a14e4869f Update Scintilla keywords and highlighting when changing document tabs 2011-10-19 01:29:10 -07:00
Nick Treleaven
55646df83d Windows: Fix detecting a changed file on opening from command-line.
The file timestamp can actually be in advance of the current time in
this case.
2011-10-13 16:56:40 +01:00
Colomban Wendling
010be558cd Plug a few memory leaks 2011-10-11 20:20:51 +02:00
Colomban Wendling
d06e9f4575 Remove $Id$ and $Date$ SVN keywords 2011-10-09 22:57:35 +02:00
Nick Treleaven
1563c625f7 Add document_show_tab().
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@6017 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-10-07 16:47:31 +00:00
Colomban Wendling
e3bf851784 Add menu items to detect indentation settings from document's content
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5904 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-08-25 20:15:02 +00:00
Colomban Wendling
18388077e6 Add support for filetype-specific indentation settings
Closes #3339420 and #3390435.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5902 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-08-25 20:14:17 +00:00
Colomban Wendling
018170c130 Improve indentation width detection to better deal with Java and Vala files
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5873 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-07-28 17:59:58 +00:00
Colomban Wendling
5914176970 Completely drop HAVE_GIO checks
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5861 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-06-20 16:11:46 +00:00
Colomban Wendling
d61dea84ed Add an hidden pref to choose between GIO and plain C unsafe file saving.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5860 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-06-20 16:11:18 +00:00
Colomban Wendling
3bd6a01525 Fix a few signed vs. unsigned and differently-sized integer problems
Most notably, utils_get_line_endings() and document_open_file_list()
don't support -1 as the size anymore.  If the size should be computed
from null-terminated data, the caller code must take care of doing so.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5855 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-06-17 22:52:17 +00:00
Colomban Wendling
254007f22c Consistently always check if USE_GIO_FILEMON is defined, not for its value
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5854 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-06-17 22:51:51 +00:00
Colomban Wendling
e9e3f6a8ab Remove most of the checks for GIO
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5852 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-06-17 22:51:17 +00:00
Colomban Wendling
5d606ce351 Deprecate ui_widget_set_tooltip_text() in favor of gtk_widget_set_tooltip_text()
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5840 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-06-13 18:41:50 +00:00
Colomban Wendling
6f9d845181 In messages show the actual text user entered in Find and Replace dialogs
Previously we could put into a message a string where escape sequences
were already translated.

In the code, now we pass the original text together with the one
that is actually searched for.  New `original_text' field was added to
GeanySearchData.  A bug was fixed in document.c:show_replace_summary(): it
did not escape the "No matches found for ..." string.

Patch by Eugene Arshinov, thanks.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5832 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-06-03 13:40:42 +00:00
Enrico Tröger
5141f14007 Add ui_focus_current_document() and document_grab_focus().
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5828 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-06-02 21:15:37 +00:00
Colomban Wendling
9bdd1663f4 Avoid changing the tag tree if it's not the one of the current document
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5742 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-04-26 16:21:47 +00:00
Colomban Wendling
ec4a5ea4f9 Make sure to update the tag list only for the current document
Fix idle tag list updating not to update the tag list if the current
document isn't the one to update anymore. In this case, mark the
document as needing an update and re-schedule an idle update next time
the document gets the focus.

This fixes updating the tag list after switching documents, which
resulted in displaying the wrong tag list.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5738 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-04-26 13:52:31 +00:00
Enrico Tröger
9f8c5103a8 Add document_compare_by_tab_order() and document_compare_by_tab_order_reverse() to the plugin API.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5727 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-04-17 13:40:04 +00:00
Nick Treleaven
5e4c8e0ade Update dox for document_compare_by_display_name() with warning
about parameter addresses.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5718 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-04-13 12:16:02 +00:00
Enrico Tröger
211a963773 Rename document_sort_by_display_name() into document_compare_by_display_name(), thanks again Nick.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5714 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-04-12 17:20:59 +00:00
Enrico Tröger
cb66df3d76 Fix wrong casting of array pointers, thanks Nick.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5713 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-04-12 17:17:54 +00:00
Colomban Wendling
a788a38240 Revert "Don't update parent WorkObjects when updating one in real-time"
This reverts commit 877cc1d97acd185cc7e0e88bb0b014fb74e16072.

This commit broke calltips, we need another fix for it.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5711 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-04-11 15:54:43 +00:00
Enrico Tröger
66c8b7faee Add ui_menu_add_document_items_sorted() and document_sort_by_display_name() to the plugin API.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5705 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-04-10 17:03:41 +00:00
Enrico Tröger
d91810115a Add and use signal "document-reload" to the plugin API.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5703 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-04-10 13:53:05 +00:00
Nick Treleaven
39674589f4 Fix sign comparison warnings.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5647 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-03-29 16:48:37 +00:00
Colomban Wendling
8640d845d0 Don't update parent WorkObjects when updating one in real-time
Updating the parent may lead to performance issues if an object have
too many parents since they are updated recursively.

Parent objects are still updated when saving the file.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5642 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-03-28 20:36:06 +00:00
Colomban Wendling
4c7ad1f113 Add possibility to detect the indentation width from the file content
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5631 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-03-26 17:25:24 +00:00
Colomban Wendling
5713aa6804 Small code cleanups
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5629 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-03-26 03:12:38 +00:00
Colomban Wendling
7698bf60a7 Improve usage of G_(UN)?LIKELY()
G_(UN)?LIKELY() should be only used on whole conditional expressions,
and only if the branching is very highly predictable, not if it is only
more probable.

These macros should be used with care because a wrong prediction may
be a lot worst than what a good prediction can give.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5625 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-03-24 22:00:18 +00:00
Colomban Wendling
4ac3ccbd37 Make Shift-Enter in search dialog and toolbar search entries search backwards
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5621 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-03-24 16:51:02 +00:00
Nick Treleaven
d910ebc5ba Fix compiler warnings:
document.c: In function ‘apply_forced_indent_settings’:
document.c:1008: warning: enumeration value ‘GEANY_FILETYPES_NONE’ not handled in switch
...


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5614 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-03-22 17:03:04 +00:00
Colomban Wendling
57996805ac Update forced indent settings when setting the filetype
This makes documents created or set to a filetype with forced indent
setting (Makefile, F77) to have the correct setting right away.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5611 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-03-20 17:50:59 +00:00
Colomban Wendling
f60ead793d Move document encoding conversion with BOM support to encodings.[ch]
Adds the new function encodings_convert_to_utf8_auto(). This makes easy
to convert file data to UTF-8 in a high-level fashion, with BOM support
and everything.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5606 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-03-18 15:57:02 +00:00