147 Commits

Author SHA1 Message Date
Enrico Tröger
0324ed71f6 Add *_full variants of editor indicator functions to the plugin API for more control over indicators.
Add/Update some API docs.
Make the 'Mark' button for Find highlight the results with rounded boxes instead of marking the whole line.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3155 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-10-25 18:57:00 +00:00
Enrico Tröger
1c46db7dd6 Add main_locale_init() to the plugin API.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3153 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-10-25 18:56:27 +00:00
Enrico Tröger
d3ee6f48ca Add toolbar buttons for Cut, Copy, Paste and Delete (#2161750).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3147 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-10-23 20:55:55 +00:00
Enrico Tröger
396fa96f24 Update Scintilla to version 1.76.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3114 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-10-18 10:56:10 +00:00
Nick Treleaven
c343d904b2 Add ui_add_document_sensitive() to the plugin API.
Deprecate plugin_fields, PluginFlags - use
ui_add_document_sensitive() instead.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3084 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-10-14 14:49:41 +00:00
Nick Treleaven
d8d727752e - API changes:
Replace p_ui->get_toolbar_insert_position() with
p_plugin->add_toolbar_item(), which also adds a separator when the
first item is added.
Add 'GeanyPlugin *geany_plugin' plugin symbol, partly to replace
plugin_info (now deprecated), mainly to identify a plugin and hold
private implementation fields for plugin utility functions.
(plugin_info will be removed after the 0.15 release.)
- Code changes:
Add ui_auto_separator_add_ref() to hide separator-like widgets when
their visible group elements are hidden or destroyed.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3074 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-10-13 12:38:32 +00:00
Enrico Tröger
087872260f Add new filetype 'Gettext translation file' (closes #2131985).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3018 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-28 16:32:49 +00:00
Enrico Tröger
71dbd0f2d6 Make 'Previous/Next word part' keybindings configurable.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3011 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-26 18:29:42 +00:00
Nick Treleaven
59cb3b2cce Apply patch from Andrew Rowland to add support for the R language
(thanks, #2121502).


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3004 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-26 12:23:59 +00:00
Nick Treleaven
1bbb9ba3c7 Remove 2 unnecessary deprecated macros.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2976 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-19 16:45:07 +00:00
Nick Treleaven
3036bbe067 Fix ScintillaFuncs::indic_clear() return type, and rename to
indicator_clear().


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2970 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-18 11:47:48 +00:00
Enrico Tröger
a6ce9b8a6d Replace the usage of the old Scintilla indicator API by the new modern API and remove old hacks (patch by Jason Oster, thanks).
Add new sci_indic_clear() function to the plugin API.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2966 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-17 18:05:27 +00:00
Enrico Tröger
ab3c9a4f3d API changes:
Rename sci_can_copy() into sci_has_selection().
Rename sci_find_bracematch() into sci_find_matching_brace().

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2964 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-17 18:02:55 +00:00
Nick Treleaven
34f54710dd Merge split-window-plugin branch.
Add Split Window plugin (should work OK for viewing and basic text
editing; most other features are not implemented yet).
Add editor_create_widget() to the API.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2954 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-16 16:06:47 +00:00
Nick Treleaven
186e366348 Add editor_create_widget() to the API; remove editor_create(),
editor_destroy().


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/split-window-plugin@2950 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-16 15:21:46 +00:00
Enrico Tröger
b747234117 Add ui_get_toolbar_insert_position() for plugins to get a position to insert new toolbar items.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2930 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-08 14:28:59 +00:00
Enrico Tröger
ab7a522ca9 Rename all toolbar widgets for consistent names.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2924 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-08 14:22:39 +00:00
Nick Treleaven
6ce421f141 Add OpenGL Shader Language (GLSL) filetype (patch from Colomban
Wendling, thanks; closes #2060961).


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2908 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-08-27 12:44:54 +00:00
Nick Treleaven
9f8f2c7b28 Add Split Window plugin (work-in-progress).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/split-window-plugin@2906 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-08-26 15:58:07 +00:00
Nick Treleaven
a2fbc3a949 Rename HighlightingStyle to GeanyLexerStyle.
Add dox for highlighting_get_style(), GeanyLexerStyle, mentioning
SCI_STYLEGETFORE.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2903 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-08-26 12:43:46 +00:00
Nick Treleaven
16d8dad107 Rename api_version GEANY_API_VERSION.
Rename abi_version GEANY_ABI_VERSION.
Use enums for each of these so they can be used to initialize a
global variable, and add dox.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2888 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-08-14 15:50:40 +00:00
Nick Treleaven
530761a6fb Rename GeanyIndentPrefs::tab_width to hard_tab_width, and update
keyfile key name.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2874 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-08-11 16:53:03 +00:00
Nick Treleaven
a134c529c2 Rename KeyCallback GeanyKeyCallback.
Rename KeyBinding GeanyKeyBinding.
Rename KeyBindingGroup GeanyKeyGroup.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2869 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-08-08 18:05:53 +00:00
Nick Treleaven
b74eb47577 Add sci_get_tab_width() to the API, and use it to get the correct
display tab width in the Export plugin.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2866 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-08-08 14:46:31 +00:00
Nick Treleaven
309b853b57 Merge changes from the custom-tab-width branch (closes #1662173).
Thanks to Joerg Desch for explaining how it needs to work.
Note: this breaks the plugin API for indentation editor_prefs.
Add separate Width indent pref (as well as the Tab Width pref).
Add 'Tabs & Spaces' Indent Type radio option pref.
Add 'Tabs and Spaces' Document menu indent option.
Note: Tabs & Spaces cannot be detected (yet) when opening files;
default file templates still only use tabs.
Set 'Detect from file' indent type setting insensitive when Tabs &
Spaces is set.
Don't change per-document auto-indent setting after changing default
auto-indentation type.
- API changes:
Add GeanyIndentPrefs struct from some GeanyEditorPrefs fields.
Replace GeanyIndentPrefs::use_tabs with GeanyIndentType field 'type'.
Add editor_get_indent_prefs() to the API, which should be used to
get the right settings for a document/editor instead of reading
any struct fields. This could also support project/filetype
indentation prefs quite easily.
- Core code changes:
Move toggle_prefs to a function toggle_items_foreach(), which takes
a PREF_DISPLAY or PREF_UPDATE argument. This means the PrefEntry
array can contain runtime fields, so can read pointer contents.
Add pref_item_callbacks array of functions to call;
toggle_items_foreach(), spin_items_foreach(), radio_items_foreach(),
combo_items_foreach().
Update keyfile.c to use foreach-style functions for SettingEntry
arrays, like the new PrefEntry code in prefs.c.
Add get_indent_size_after_line() to replace get_indent() for
clarity, and to fix Tabs & Spaces auto-indentation > basic.
Remove opening-brace indent code from get_indent() as it's now in
get_brace_indent().
Change editor_close_block() to use sci_get_line_indentation() for
clarity.
Make editor_close_block() static.
Add editor_init().


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2863 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-08-07 16:36:06 +00:00
Nick Treleaven
a6eac00cc1 Add editor_get_indent_prefs() to the API.
Make editor_get_indent_prefs() return default prefs if editor is
NULL.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/custom-tab-width@2861 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-08-07 15:30:52 +00:00
Enrico Tröger
866f8fbefe Add a preference for the comment toggle mark string("~ " by default).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2825 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-27 18:41:07 +00:00
Nick Treleaven
501d543492 Note: this breaks the plugin API for indentation editor_prefs.
Add GeanyIndentPrefs struct from some GeanyEditorPrefs fields (maybe
this struct will get used elsewhere too).
Add editor_init().


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/custom-tab-width@2821 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-25 15:05:27 +00:00
Nick Treleaven
dd51f0eab1 Add dox for ScintillaFuncs.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2819 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-25 14:18:49 +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
1580203f8a Rename document_new_file() argument to utf8_filename.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2810 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-24 12:12:47 +00:00
Nick Treleaven
d34ff4285d Rename p_filetypes->detect_from_filename() to detect_from_file() in
the plugin API.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2808 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-24 11:23:12 +00:00
Nick Treleaven
5f18cee90f Add dox for FiletypeFuncs and some of GeanyFiletype.
Rename filetypes_detect_from_file() to
filetypes_detect_from_document().
Rename filetypes_detect_from_filename() to
filetypes_detect_from_file() because it also detects shebang lines.
Remove function prototype comments for filetypes.h (see filetypes.c
or API dox instead).


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2805 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-23 14:44:27 +00:00
Nick Treleaven
4faeb8f46f Move utils_reload_configuration() to main.c.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2803 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-23 11:46:02 +00:00
Enrico Tröger
8f38a69121 Move code to reload configuration files into utils_reload_configuration() and add it to the plugin API.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2794 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-20 18:07:53 +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
Enrico Tröger
ed016dc093 Split filetype Fortran into Fortran 77 and Fortran 90.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2777 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-14 18:27:20 +00:00
Enrico Tröger
ccd2186f6a Add preferences for year, date and datetime format of the corresponding template wildcards to make them more flexible.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2775 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-13 11:51:00 +00:00
Nick Treleaven
3bdd42ba4b Change plugin API EditorFuncs to use GeanyEditor pointers.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/editor-struct@2770 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-11 14:49:09 +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
18ced215d1 Remove deprecated macros and typedefs (except DOC_IDX_*), as some of
them are likely to cause naming conflicts and all plugins will need
updating since 0.14 anyway.
Add geany macro that simply expands to geany_data.
Deprecate app, main_widgets, prefs, project macros, as the geany
macro can be used instead.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2761 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-07 16:16:18 +00:00
Enrico Tröger
b14568d1f8 Rename signal "populate-edit-menu" into "update-editor-menu".
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2755 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-05 09:37:37 +00:00
Nick Treleaven
70df7f6388 Add document_close() to the plugin API.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2742 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-02 13:40:06 +00:00
Enrico Tröger
2d5d52a08d Add plugin signal "populate-edit-menu" to notify plugins when the editing menu is shown.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2733 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-06-28 15:46:07 +00:00
Enrico Tröger
744420d2d1 Increase ABI for recent keybindings changes.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2714 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-06-19 17:25:40 +00:00
Enrico Tröger
4ded2fe4b0 Add keybindings for Line wrapping, Line breaking, Toggle fold and Replace Spaces by tabs.
Refactor different document keybindings callback functions into cb_func_document_action().


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2710 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-06-19 15:58:10 +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
Enrico Tröger
d3439f8a17 Use document pointer instead of an index to the documents array everywhere in the core code.
Pass a document pointer to the callbacks of all "document-*" signals.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/document-pointer@2692 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-06-15 13:35:48 +00:00
Enrico Tröger
1e8d82f46a Note: this breaks the plugin API for msgwin and navqueue functions.
Make NavQueueFuncs and MsgWinFuncs use a GeanyDocument* instead of an integer index.
Adjust plugins to work with these changes.            


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/document-pointer@2688 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-06-12 20:09:57 +00:00
Nick Treleaven
98550fa246 Note: this breaks the plugin API for document functions.
Make all DocumentFuncs use a GeanyDocument* instead of an integer
index, so there's no need to access the documents array or (in most
cases) use DOC_IDX_VALID() - just check for non-NULL.
Add GeanyDocument::index field for use with the documents array.
Add DOC_IDX() macro to get the document index from a possibly NULL
pointer.
Note: the new functions in the core have a documents_ prefix where
they would conflict with the old names, which are still present and
used in the core (but will be removed soon).
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().
Add dox for document_set_filetype().
Rename debugging function doc() doc_at() to avoid conflicts.
Rename document_find_by_realpath() in the core also.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/document-pointer@2687 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-06-12 16:50:01 +00:00