132 Commits

Author SHA1 Message Date
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
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
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
9733a9806f Use brackets for DOC_FILENAME() macro 'doc' argument.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5719 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-04-13 12:20:19 +00:00
Enrico Tröger
d478a5cc01 Add missing parts from previous commit, oops
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5715 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-04-12 17:24:13 +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
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
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
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
Enrico Tröger
6ac2623208 Update copyright information.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5528 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-01-19 19:39:09 +00:00
Nick Treleaven
3a3d8815a3 Add gio_unsafe_save_backup hidden pref (patch by Lex Trotman,
thanks).



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5430 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-11-23 16:23:22 +00:00
Nick Treleaven
c25d9856fe Add 'Ensure consistent line endings' file saving pref (patch by
Manuel Bua, thanks).



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5321 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-10-25 16:24:55 +00:00
Enrico Tröger
fdd451f0d4 Add preference to add new document tabs beside the current one (patch by Colomban Wendling, thanks).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4928 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-05-16 17:45:39 +00:00
Nick Treleaven
f38b468348 Add function document_apply_indent_settings() for use later.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4872 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-05-05 12:07:45 +00:00
Nick Treleaven
138cbaa02f Use 3rd person (gets not get) for API function brief descriptions.
Avoid using 'convenience function' in API brief descriptions.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4757 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-03-12 18:15:48 +00:00
Enrico Tröger
995a467901 Fix document_try_focus() to make it work with the sidebar document list as well.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4712 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-02-28 14:32:38 +00:00
Nick Treleaven
cfa2b8b532 Show 'Replaced X matches in Y documents' message when using Replace in
Session.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4533 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-01-18 17:05:13 +00:00
Enrico Tröger
7ba4a81181 Update copyright information.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4518 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-01-01 22:55:18 +00:00
Enrico Tröger
d91e7b762b Add document_need_save_as().
Show the Save As also for documents created from filetype templates instead of saving them directly with the untitled filename.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4494 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-12-20 15:36:52 +00:00
Nick Treleaven
cf540a712f Deprecate documents_foreach() as it looks more like a function; use
foreach_document() instead.
Generate dox even for GEANY_DISABLE_DEPRECATED declarations.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4399 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-11-04 15:28:38 +00:00
Nick Treleaven
a4eec38feb Enable type-ahead find for sidebar symbols and documents tabs
(patch by Thomas Martitz, thanks).



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4148 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-09-03 12:04:27 +00:00
Enrico Tröger
b25980ba8d Small corrections to some API docs.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4063 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-08-09 20:31:03 +00:00
Nick Treleaven
99641558bb Add documents_foreach() API macro that skips invalid docs.
Make filetypes[], documents[] part of the API again.
Add GEANY() macro for sharing geany symbols between API and core.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3964 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-07-14 13:05:51 +00:00
Nick Treleaven
b051d01215 Apply patch from Eugene Arshinov to reload color schemes via menu
(thanks).



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3955 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-07-13 11:58:21 +00:00
Nick Treleaven
e1ecc75f44 Make GeanyDocument::file_type always be non-NULL, even for a new
document with no filetype set.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3868 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-06-17 10:46:43 +00:00
Enrico Tröger
8fcef38e82 Add a hidden preference 'use_safe_file_saving' to save files to disk by creating a temporary file first. This has serious side effects, please read the documentation before enabling this.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3722 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-04-21 20:54:04 +00:00
Enrico Tröger
f1eb8dc22d Ellipsize tab labels and some status messages for very long filenames (closes #2777348).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3718 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-04-21 20:52:51 +00:00
Enrico Tröger
a9dc990049 Start using G_LIKELY/G_UNLIKELY macros to gain a little more performance when building the code with gcc.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3687 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-04-05 21:07:40 +00:00
Enrico Tröger
d6c1d1e801 Add editor_get_word_at_pos() as a convenient function to retrieve the word at a given position.
Make document_get_status_color() returning a const GdkColor.
Add editor_get_word_at_pos() and document_get_status_color() to the plugin API.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3567 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-02-08 19:52:21 +00:00
Enrico Tröger
de3d3b42fb Add document_save_file_as and document_rename_file to the plugin API.
If GIO is available, use GFileMonitor to watch for file disk changes and indicate them immediately using an orange tab label colour.
Break plugin ABI for this and the last commits.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3484 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-01-18 18:19:58 +00:00
Enrico Tröger
c636728975 Fix several compiler warnings and build errors (patch by Daniel Richard G., thanks).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3460 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-01-11 18:29:39 +00:00
Enrico Tröger
39a6eb455e Update copyright information.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3446 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-01-04 18:30:42 +00:00
Nick Treleaven
5e85300f65 Deprecate pluginmacros.h in favour of geanyfunctions.h.
Move geany macro to plugindata.h.
Remove geanyfunctions.h dependency on pluginmacros.h.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3311 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-12-04 13:26:48 +00:00
Nick Treleaven
5763dfbe2d Add document_index(), filetypes_index() array accessor functions to
the plugin API.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3310 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-12-03 18:03:54 +00:00
Enrico Tröger
ac52e42417 Show the full filename of a document as tooltip on the tab labels.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3248 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-11-18 20:13:29 +00:00
Nick Treleaven
46cae47182 Use GeanyDocumentPrivate instead of using inheritance for non-public
fields (this was unnecessary and meant using ugly casts).


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3010 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-26 17:28:50 +00:00
Enrico Tröger
437fafd46e Move document_apply_update_prefs() in editor.c.
Refactor get_indent_guides_from_lexer() from sciwrappers.c in editor_set_indentation_guides().

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2979 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-21 16:43:45 +00:00
Nick Treleaven
82399858ee Add more dox explaining how to use documents_array (moved from
document.h, to minimise rebuilding after adding dox).
Remove some mentions of document indexes in document.c comments.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2812 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-24 15:17:55 +00:00
Nick Treleaven
c5fb6b34bc Add new Files pref 'Allow new documents from the command-line'.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2796 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-21 14:28:46 +00:00
Nick Treleaven
000e8fcc9b Merge the editor-struct branch:
Note: this breaks the plugin API for editor-related document fields
and functions.
Split new GeanyEditor struct type from GeanyDocument fields sci,
line_wrapping, auto_indent, scroll_percent, use_tabs, line_breaking.
GeanyEditor::document allows access back to document fields.
Add GeanyDocument::editor field; this is only valid when the
document is valid, and NULL otherwise. This means any checks for
doc->editor->scintilla != NULL will segfault for invalid
documents - check against doc->is_valid or doc->editor != NULL
instead.
Change plugin API EditorFuncs to use GeanyEditor pointers.
Make editor_set_font() take a pango-style font string, and use a
GeanyEditor pointer.
Use GeanyEditor* instead of GeanyDocument* in editor.c (most global
editor functions still need conversion though, but this may be done
gradually or as required).
Move utils_get_current_function() to symbols.c.
Move utils_replace_filename() to document.c.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2779 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-15 14:29:41 +00:00
Nick Treleaven
bceab8d3e2 Note: this breaks the plugin API for editor-related document fields.
Split new GeanyEditor struct type from GeanyDocument fields.
Add GeanyDocument::editor field.
GeanyEditor::document allows access back to document fields.
GeanyEditor::scintilla replaces GeanyDocument::sci.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/editor-struct@2763 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-08 10:50:13 +00:00
Nick Treleaven
2c5a71f054 Add function document_close().
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2740 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-01 14:20:16 +00:00
Nick Treleaven
a85c71ee9b Remove document_delay_colourise(), document_colourise_all().
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2719 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-06-20 14:19:57 +00:00
Nick Treleaven
652d073d62 Merge the document-pointer branch.
Note: this breaks the plugin API for document functions,
document signal callbacks, msgwin_msg_add() and navqueue_goto_line().
Make all DocumentFuncs use a GeanyDocument* instead of an integer
index, so there's no need to access the documents array or use
DOC_IDX_VALID() - usually just check for non-NULL.
Pass a document pointer to the callbacks of all document-* signals.
Add GeanyDocument::index field for use with the documents array.
Remove DocumentFuncs::get_cur_idx() - use get_current() instead.
Replace DocumentFuncs::get_n_idx() with get_from_page().
Rename DocumentFuncs::find_by_realpath() to find_by_real_path().
Replace DocumentFuncs::remove() with remove_page().
Add 'changed' argument for DocumentFuncs::set_text_changed().
Make NavQueueFuncs and MsgWinFuncs use a GeanyDocument* instead of an
integer index.
Add DOC_VALID() macro.
Add deprecated DOC_IDX() macro to get the document index from a
possibly NULL pointer; deprecate macro DOC_IDX_VALID. These macros
can make porting outside plugins easier; of course, it is better to
rewrite the code to use document pointers.
Use document pointer instead of an index to the documents array
everywhere in the core code.
Rename utils_check_disk_status() in document_check_disk_status() and
move it into document.c.
Adjust plugins to work with these changes.
Add dox for document_set_filetype().
Rename debugging function doc() doc_at() to avoid conflicts.
Update plugin signals dox.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2705 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-06-18 17:03:08 +00:00
Nick Treleaven
56e77de794 Bring back GeanyDocument::is_valid field as it is clearer and more
descriptive than using doc->index != -1.
Add deprecated macros DOC_IDX_VALID and DOC_IDX in plugindata.h,
which can make porting outside plugins easier; of course, it is
better to rewrite the code to use document pointers.
Use is_valid instead of the DOC_VALID macro when iterating over
documents_array, as there are never NULL pointers in it.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/document-pointer@2704 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-06-18 14:18:26 +00:00