345 Commits

Author SHA1 Message Date
Nick Treleaven
1fb45e2dab Return GEANY_AUTOINDENT_BASIC from editor_get_indent_prefs() if the
per-document pref is set, even if the global mode is none.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3002 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-26 11:22:44 +00:00
Enrico Tröger
83d6c2e8e2 Fix using direct Scintilla access in document.c and callbacks.
Add wrapper functions instead.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3000 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-25 18:29:53 +00:00
Enrico Tröger
f701893ef7 When using editor_get_eol_char_* functions with an invalid editor object, return the appropriate value according to the eol character preference (just in case).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2999 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-25 18:29:11 +00:00
Enrico Tröger
a032d6a660 Unify the API in editor.c, all public functions now take a GeanyEditor* object.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2998 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-25 18:28:37 +00:00
Nick Treleaven
ab9e3f1c75 Don't disable the per-document auto-indent pref when the global
auto-indent mode is set to none (undoes part of r2981). In this
case, the per-document pref just behaves like
GEANY_AUTOINDENT_BASIC.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2996 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-25 16:55:35 +00:00
Nick Treleaven
bce7d185b9 Rename get_indent() read_indent().
Fix possible overflow in auto_table().


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2983 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-22 15:29:25 +00:00
Nick Treleaven
3828682705 Fix HTML table autocompletion when the indent type is 'Tabs &
Spaces' (#2118289).
Add some useful functions count_indent_size(),
string_append_indent_width().


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2982 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-22 11:57:14 +00:00
Nick Treleaven
a00dc77177 Don't disable the auto-indent document pref when switching back to a
document with auto-indent turned off.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2981 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-22 11:12:54 +00:00
Enrico Tröger
a5fadbad40 Fix broken indentation of automatic HTML table tag completion (part of #2118289).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2980 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-21 16:44:30 +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
Enrico Tröger
bab0991c36 Rename the new indicator functions and add documentation comment.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2973 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-18 13:27:10 +00:00
Nick Treleaven
5dde790601 Add 'Tab key indents' pref, which replaces hidden pref
'use_tab_to_indent'; it's now on by default.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2971 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-18 12:43:41 +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
Nick Treleaven
a7b211d66f Apply patch from Jason Oster to highlight matching brace indent
guides (thanks, #2104099).


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2945 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-15 12:49:51 +00:00
Nick Treleaven
89ac3b59a4 Show ellipsis (...) item when there are too many symbol names for
autocompletion.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2944 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-15 12:37:24 +00:00
Enrico Tröger
82df104eec When checking for starting auto completion always use the style of the previous character and remove possible error indicator styles which caused wrong checking (should fix #2058005).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2933 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-10 11:30:34 +00:00
Enrico Tröger
266cbed6ff Add 'Stop scroll at last line' editor pref (patch by Timothy Boronczyk, thanks).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2918 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-09-01 11:18:06 +00:00
Nick Treleaven
6f60b4bc2c Add 'Max. symbol name suggestions' autocompletion pref.
Edit some autocompletion pref strings.
Remove some trailing commas in array initializers (oops).
Move GEANY_TOGGLE_MARK, GEANY_MAX_AUTOCOMPLETE_WORDS to keyfile.c.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2914 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-08-29 17:00:02 +00:00
Nick Treleaven
d43cd0ee2a Add editor_destroy() to dispose of a GeanyEditor struct (in future
we may want to do more than just free it).
Fix editor.h dox description to be more informative for the API
(and move dox from editor.h to editor.c).


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2901 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-08-25 15:44:51 +00:00
Nick Treleaven
45880b0d7d Fix not using auto-completion in strings and comments (patch by
Jason Oster, thanks; fixes #2057979).


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2897 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-08-19 11:15:15 +00:00
Nick Treleaven
57ff84b183 Make Ctrl-click on a word perform Go to Tag Definition (this
shouldn't conflict with column editing as this uses
Ctrl-Shift-click).


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2889 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-08-14 16:39:51 +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
ca9fbbc777 Break is_comment() into comment and string detection, each called in
is_code_style().


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2872 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-08-11 16:31:36 +00:00
Nick Treleaven
2c883b720d Fix auto-multiline comment completion for CSS.
Fix doc-comment keyword styles confusing auto-multiline comment
completion.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2871 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-08-11 16:14:39 +00:00
Nick Treleaven
29b778fb0a Add SCE_[CD]_COMMENTDOCKEYWORD(ERROR) comment detection to
is_comment().


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2870 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-08-11 12:02:59 +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
Nick Treleaven
2bc72a08c3 Remove opening-brace indent code from get_indent() as it's now in
get_brace_indent().


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/custom-tab-width@2860 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-08-07 12:03:56 +00:00
Nick Treleaven
6140e5089d Add get_indent_size_after_line() to replace get_indent() for
clarity, and to fix Tabs & Spaces auto-indentation > basic.
Change editor_close_block() to use sci_get_line_indentation() for
clarity.
Make editor_close_block() static.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/custom-tab-width@2857 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-08-05 14:46:27 +00:00
Nick Treleaven
d3fbdf278b Fix build; currently auto-indentation doesn't support inserting tabs
and spaces, only spaces. Also Tabs & Spaces cannot be detected yet
when opening files. Default file templates still only use tabs.
Add editor_get_indent_prefs() which should be used to get the right
settings for a document/editor instead of reading any default prefs.
This could also support project/filetype indentation prefs quite
easily.
Don't change per-document auto-indent setting after changing default
auto-indentation type.
Remove ui_radio_menu_item_*(), not good to use as they depended on
the order of widget creation, so don't work well with Glade. Use
RadioPrefEntry array instead.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/custom-tab-width@2853 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-08-04 14:07:49 +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
Enrico Tröger
5a9f1500b9 Fix wrong checks when determining whether a style is a PHP style (style SCE_HPHP_COMPLEX_VARIABLE was ignored, closes #2027235).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2816 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-25 09:51:08 +00:00
Enrico Tröger
5c2e1a1a4d Fix space-only indentation when auto-generating HTML tables (patch by Colomban Wendling, thanks, closes #2023160).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2800 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-22 13:42:23 +00:00
Enrico Tröger
8d67117d47 Rename "delete_event" to "delete-event".
Remove some unnecessary GObject casts in g_signal_connect() calls.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2788 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-18 13:40:48 +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
Nick Treleaven
7db4bfe493 Rename GeanyEditor::scintilla to GeanyEditor::sci.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/editor-struct@2776 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-14 11:13:54 +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
Enrico Tröger
bb95dfdece Use templates_replace_all() also for snippet completion.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2774 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-13 10:56:21 +00:00
Enrico Tröger
d3adc32c19 Add support to use template wildcards in snippets.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2773 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-13 10:52:38 +00:00
Nick Treleaven
82d63e09b0 Make editor_set_font() take a pango-style font string, and use a
GeanyEditor pointer.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/editor-struct@2771 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-11 17:09:01 +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
0ae04ea2f9 Create the doc->editor field in editor_create(). This means any
checks for doc->editor->scintilla != NULL will segfault for invalid
documents - check against doc->is_valid or doc->editor != NULL
instead.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/editor-struct@2768 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-11 14:11:53 +00:00
Nick Treleaven
4837030ca1 Fix compilation.
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/branches/editor-struct@2766 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-08 16:30:37 +00:00
Nick Treleaven
7c71457fb1 Fix building editor.c, using GeanyEditor* instead of GeanyDocument*
(most global editor functions still need conversion though).


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/editor-struct@2765 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-07-08 13:53:08 +00:00