126 Commits

Author SHA1 Message Date
Colomban Wendling
740c12c0ca Remove "Show macro list" keybinding and feature
This feature looks like a poorly implemented subset of "Complete word",
but lacks some important features like prefix filtering.  It is also
misnamed as it shows not only macros, but also variables and enums.

It also only shows `editor_prefs.autocompletion_max_entries`, but does
so from *each* file, not as a whole.

So drop it altogether, as this feature doesn't really look useful and
the current implementation seem to suffer of too many shortcomings for
it to realistically be actually used.
2015-01-11 17:30:27 +01:00
Jiří Techet
10a28b4191 Protect private definitions by the GEANY_PRIVATE macro in headers
In addition, this patch defines the GEANY_PRIVATE macro for the tag
manager library where it wasn't defined before, removes 2 tag manager
headers from distribution as they are not needed by plugins and
in the tag manager changes the docstrings to ordinary comments for
private definitions.
2014-10-09 20:51:32 +02:00
Nick Treleaven
e566aae6b2 Add project prefs for line breaking column & multiline comments 2014-10-03 12:25:05 +01:00
Matthew Brush
4efcbab332 Include what you use
This is a mega-commit - because most of it had to be done in one go
otherwise some commits would fail to compile - that attempts to fix a
few problems with Geany's includes as well as various other related
cleanups. After this change it's easier to use includes and there's
little worry about which order things are included in or who includes
what.

Overview of changes:

* Include config.h at the start of each source file if HAVE_CONFIG_H
  is defined (and never in headers).
* Go through each source file and make the includes section generally
  like this:
  - Always config.h first as above
  - Then if the file has a header with the same name, include that
  - Then include in alphabetical order each other internal/geany header.
  - Then include standard headers
  - Then include non-standard system headers
  - Then include GLib/GTK+ related stuff
* Doing as above makes it easier to find implicit header include
  dependencies and it exposed quite a few weird problems with includes
  or forward declarations, fix those.
* Make geany.h contain not much besides some defines.
  - Add a little header file "app.h" for GeanyApp and move it there
  - Move "app" global to new "app.h" file
  - Move "ignore_callback" global to "callbacks.h"
  - Move "geany_object" global to "geanyobject.h"
* Add an include in "geany.h" for "app.h" since GeanyApp used to be
  defined there and some plugins included this header to access
  GeanyApp.
* Include "gtkcompat.h" everywhere instead of gtk/gtk.h so that
  everywhere sees the same definitions (not a problem in practice AFAIK
  so this could be changed back if better that way.
* Remove forward declarations from previous commits as some people
  apparently consider this bad style, despite that it reduces inter-
  header dependencies.

TODO:
* As always, to test on win32
* As always, to test with not Autotools
* Test plugins better, both builtin and geany-plugins, likely API/ABI bump
* Test with various defines/flags that may change what is included
* win32.[ch] not really touched since I couldn't test
2014-05-21 15:37:19 -07:00
Matthew Brush
6f87aac118 Normalize use of header guards and extern "C" guards
* Always define GEANY_FOO_H to 1 in the header guards
* Always put a G_BEGIN_DECLS/G_END_DECLS guard in every header for
consistency, even private ones where it doesn't matter.
* Always include either <glib.h>, <gtk/gtk.h> or some other header
that will provide G_BEGIN_DECLS before using it. In a lot of headers
that use glib.h and gtk/gtk.h stuff anyway, this resolves an implicit
dependency they had on them being included before that header.
* Always put a comment at the #endif part of the guard so it's
easier to see what it applies to.
* Always use an underscore between the header guard identifier's words
even though the filename doesn't have one.
2014-05-21 12:18:26 -07:00
Matthew Brush
fec15c61c4 Move typedefs out of geany.h and into their own headers
This helps to avoid the requirement that geany.h be included before
using any of the changed headers.
2014-05-21 12:18:25 -07:00
Igor Shaula
007d5395c2 Disable commenting out blank lines by 'Toggle line commentation' 2014-05-04 01:05:09 +02:00
Colomban Wendling
d80bc7ce56 Update FSF address
Closes #3557875.
2012-08-24 19:25:57 +02:00
Colomban Wendling
1c2c455b1d Update copyright information 2012-06-18 01:15:04 +02:00
Matthew Brush
51dc2e9baf Support plugins written in C++
Rename use of C++ `template` keyword in plugin API function argument
and add `G_BEGIN_DECLS` and `G_END_DECLS` to public header files to
make them easier to include in C++ code. TagManager and Scintilla
headers already have these `extern "C"` blocks so they shouldn't
require any modifications.

The Autotools build system already adds in a `dummy.cxx` to hint
Automake into C++ linking to support Scintilla, which is quite
convenient for dynamically loading of C++ plugins at run-time into
the otherwise C-only program. The other build systems seem to also
use the correct linking.
2012-03-30 23:35:10 -07:00
Colomban Wendling
f0de946d3e Fix inserting multi-line comments with "Insert multiline comment"
"Insert multiline comment" did insert single-line style comment when
available even if multi-line style was also supported for the filetype.
2011-12-04 00:21:41 +01: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
Colomban Wendling
d06e9f4575 Remove $Id$ and $Date$ SVN keywords 2011-10-09 22:57:35 +02:00
Colomban Wendling
3440b6770f Add and use editor_set_indent_width() to only set indentation width
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5903 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-08-25 20:14:40 +00:00
Colomban Wendling
0ecab5791f Use gsize instead of C99 type size_t in Geany's core
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5899 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-08-25 20:12:20 +00:00
Colomban Wendling
fc6dc88772 Fix search for the current word if it isn't composed of only GEANY_WORDCHARS
Use Scintilla's definition of a "word" when fetching the current word
to perform a search.  This is needed when we perform a whole-word
search for Scintilla to find the matches.

Closes #3386129.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5895 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-08-21 17:15:19 +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
67cd5dbd13 Add possibility to update symbol list in IDLE time
Enabled by default, using a minimal delay of 250ms between two updates.
Also add a preference to configure this in Geany's UI, under
Preferences -> Editor -> Completion.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5557 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-03-05 22:46:32 +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
ff6354d833 Remove unnecessary 'global' from long line editor pref field names.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5432 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-11-23 17:36:29 +00:00
Nick Treleaven
a29d75af2c Add editor_get_prefs() instead of editor_get_long_line_*()
functions. This general function can be extended to support
various project and document overrides.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5431 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-11-23 17:25:58 +00:00
Nick Treleaven
ddefb0a0b4 Add API functions (patch by Eugene Arshinov, thanks):
Move editor.c: is_{string,comment,code}_style() functions to
highlighting.c, add to API.
Add editor_find_snippet(), editor_insert_snippet(),
utils_find_open_xml_tag() to API.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5409 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-11-16 15:07:40 +00:00
Nick Treleaven
cb9982480f Make Reflow Lines/Block command use the current indented block, not
the whole paragraph, which could have mixed indentation.
Fix memory leak and off-by-one bug on first line when using Select
Paragraph command.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5408 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-11-16 13:26:04 +00:00
Nick Treleaven
e664c8344f Allow per-document indent width setting (patch by Jiří Techet,
updated by Erik de Castro Lopo - thanks).



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5228 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-09-14 15:01:29 +00:00
Enrico Tröger
befcb63e59 Ensure inserted templates always have proper line ending characters
according to the current document's preference.
This is also fixes problems with templates on Windows which had
always Unix line ending characters but now since they are read
from files, these have Windows line ending characters and had been
converted twice.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5114 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-08-01 17:20:50 +00:00
Enrico Tröger
e382869a16 Allow '+<number' and '-<number>' as values for Goto Line inputs to jump relative to the current line (closes #2997238).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4894 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-05-09 15:48:55 +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
Nick Treleaven
7c27b1e009 Apply patch from Eugene Arshinov to add project long line marker
customisation (thanks).



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4751 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-03-10 16:20:34 +00:00
Enrico Tröger
49dff98485 Add preference for virtual spaces.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4724 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-03-07 10:36:27 +00:00
Enrico Tröger
54d1b3ae7e Rename fold_symbol_click() to editor_toggle_fold().
Use editor_toggle_fold() when the 'Toggle current fold' keybinding was used to respect the 'Fold/unfold all children' preference (closes #2935053).

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4542 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-01-24 16:30:29 +00:00
Frank Lanitz
383841ce01 Add editor_insert_text_block() to plugin API
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4521 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-01-12 18:44:38 +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
Nick Treleaven
01b408c09b Add 'View->Editor->Color Schemes' menu, for now only shown if color
scheme files exist in a colorschemes config directory. Color scheme
files must end in ".conf" and currently only the [named_styles]
section is read.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4395 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-11-04 12:36:56 +00:00
Nick Treleaven
42119d8f3b Add 'Word part completion' keybinding so keys other than Tab can be
used, or to clear/change the combination so Tab does full completion
like before.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4344 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-10-20 15:35:44 +00:00
Nick Treleaven
5b708760cf Make editor_prefs.snippets hash table private (not a pref).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4200 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-09-16 17:30:30 +00:00
Nick Treleaven
14e4bc7239 Change snippet_goto_next_cursor() to
editor_goto_next_snippet_cursor() as it's in editor.h.
Avoid using GPOINTER_TO_INT macro.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4190 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-09-14 17:28:07 +00:00
Nick Treleaven
aa89783b74 Add 'Reflow lines/paragraph' keybinding, defaults to Ctrl-J.
Heavily based on a patch by Eugene Arshinov (thanks).
Add sci_lines_split(), sci_lines_join(), sci_text_width(),
editor_strip_line_trailing_spaces().



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4025 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-07-24 15:44:14 +00:00
Nick Treleaven
67ae2b4931 Add 'Drop rest of word on completion' pref.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3942 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-07-09 11:18:45 +00:00
Nick Treleaven
d2595b5e96 Add 'Autocomplete all words in document' pref.
Use 'autocompletion' in dialog and docs, not 'auto completion'.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3927 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-07-08 12:29:20 +00:00
Enrico Tröger
cf531e4347 Make some locally only used functions static.
Fix wrong sanity check.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3805 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-05-19 20:17:37 +00:00
Nick Treleaven
2edecade6b Make indenting with the Tabs indent type preserve spaces on the line,
so it works for the 'tab indents, space aligns' formatting style.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3802 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-05-18 15:17:48 +00:00
Enrico Tröger
6d50bdf31a Make editor_highlight_braces() static.
Remove unused wrapper functions.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3696 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-04-07 22:08:38 +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
b2eeefc919 Add some missing @since tags to the API documentation of various functions.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3531 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-01-30 18:53:23 +00:00
Enrico Tröger
bd2d677d84 Support multiple %cursor% wildcards in Snippets. To switch between %cursor% wildcards, use the new keybinding 'Move cursor in snippet' (patch by Thomas Martitz, thanks).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3461 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-01-11 21:05:03 +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
Enrico Tröger
44b7d27b50 Add "editor-notify" to the plugin API.
This signal is emitted whenever something in an editor widget changes, e.g. a character was typed.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3391 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-12-17 16:00:18 +00:00
Enrico Tröger
ac72607ade Add auto-closing of braces, brackets and quotes (patch by Guillaume de Rorthais, thanks).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3319 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-12-04 20:19:20 +00:00
Enrico Tröger
13682cfd10 Add editor_get_calltip_text().
Add tooltips for the symbol list items.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3288 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-11-29 12:50:52 +00:00
Enrico Tröger
18095fca79 Note: this breaks the plugin API for Editor and Scintilla functions.
Rename all functions in editor.c and sciwrappers.c which are related to indicators for more consistency.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3238 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-11-16 17:54:28 +00:00