46 Commits

Author SHA1 Message Date
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
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
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
Colomban Wendling
e87f393192 Create color scheme menu item with Glade
Now there is a dialog instead of a menu for selecting the color
schemes, the item under View->Editor can be created with Glade like the
rest of the menu.
2012-05-27 01:14:25 +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
3f31453ace Fix various integer sign and size issues 2011-11-06 01:12:42 +01:00
Colomban Wendling
d06e9f4575 Remove $Id$ and $Date$ SVN keywords 2011-10-09 22:57:35 +02: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
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
9021717031 Use full function name for GeanyFunctions function pointers. This
avoids naming conflicts e.g. with C++'s 'new' keyword.
Remove deprecated header pluginmacros.h - use geanyfunctions.h instead.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4552 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-01-25 15:53:54 +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
0b8c46a8a8 Add highlighting_set_styles() to API, use for Split Window plugin so
filetypes.common settings get set too.
Make highlighting_set_styles() take GeanyFiletype pointer instead of
filetype id.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4322 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-10-15 16:54:15 +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
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
Enrico Tröger
85f73129c0 Apply patch from Daniel Richard G. to fix to fix several compiler warnings, C89 violations and minor code problems (thanks).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2267 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-02-20 11:24:23 +00:00
Enrico Tröger
e3201062c6 Update copyright information and change format of email addresses in source files.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2150 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-01-06 18:11:57 +00:00
Enrico Tröger
639e23effa Use pluginmacros.h (for classbuilder and htmlchars plugins).
Add highlighting_get_style().
Add highlighting_get_style() to the plugin API.
Rename DocumentFuncs field in GeanyData struct to avoid name clashes.	      


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2103 ea778897-0a13-0410-b9d1-a72fbfd435f5
2007-12-16 11:27:59 +00:00
Nick Treleaven
046d5ef796 Fix bug with using the default extension, not the user set one, if
'New with template' is used before any documents of the same filetype
are open.
Load filetype keyfiles from filetypes_load_config(), not from
styleset_foo_init().
Add highlighting_init_styles(), highlighting_set_styles(),
simplifying a lot of styleset function code.
Remove filetype::style_func_ptr field.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2011 ea778897-0a13-0410-b9d1-a72fbfd435f5
2007-11-02 17:44:05 +00:00
Nick Treleaven
9f46d083c5 Move #define PLAT_GTK to geany.h.
Move filetype typedef to geany.h.
Don't #include any src/*.h files from headers.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@1800 ea778897-0a13-0410-b9d1-a72fbfd435f5
2007-08-15 15:37:21 +00:00
Enrico Tröger
75c74284f8 Add filetype Haxe (patch by blackdog, thank you).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@1744 ea778897-0a13-0410-b9d1-a72fbfd435f5
2007-07-26 09:50:12 +00:00
Enrico Tröger
693649f955 Add new filetypes CSharp and FreeBasic.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@1635 ea778897-0a13-0410-b9d1-a72fbfd435f5
2007-06-22 17:34:31 +00:00
Nick Treleaven
6a53d1e307 Load global tag files stored in ~/.geany/tags when needed.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@1521 ea778897-0a13-0410-b9d1-a72fbfd435f5
2007-05-11 11:58:56 +00:00
Enrico Tröger
725ae82446 Added new filetype Haskell (patch by Guillaume Hoffmann, thanks).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@1510 ea778897-0a13-0410-b9d1-a72fbfd435f5
2007-05-06 14:05:43 +00:00
Enrico Tröger
7b61ad934d Updated copyright information.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@1188 ea778897-0a13-0410-b9d1-a72fbfd435f5
2007-01-14 17:36:42 +00:00
Enrico Tröger
f0d4e65311 Added new filetypes Javascript and Lua.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@1181 ea778897-0a13-0410-b9d1-a72fbfd435f5
2007-01-13 20:16:09 +00:00
Enrico Tröger
9b7569e3ef Added new filetype VHDL.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@991 ea778897-0a13-0410-b9d1-a72fbfd435f5
2006-11-13 22:11:19 +00:00
Enrico Tröger
dd47b2bf62 Applied patch from Bob Doan to do not set keywords for XML documents(thanks).
Made styleset_markup() static.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@968 ea778897-0a13-0410-b9d1-a72fbfd435f5
2006-11-04 22:38:11 +00:00
Nick Treleaven
e721ae69b0 Changed StyleSet struct to use Style array, which can use less
memory. Added separate struct for the common style set. Also
use a struct for tracking the loaded global tags files. Renamed
some static functions.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@854 ea778897-0a13-0410-b9d1-a72fbfd435f5
2006-09-30 11:13:58 +00:00
Enrico Tröger
b1b4a4e157 Split filetype PHP/HTML into PHP and HTML.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@779 ea778897-0a13-0410-b9d1-a72fbfd435f5
2006-09-01 17:07:49 +00:00
Enrico Tröger
010d6581e5 Added new filetypes Diff and Ferite.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@765 ea778897-0a13-0410-b9d1-a72fbfd435f5
2006-08-27 17:39:34 +00:00
Nick Treleaven
0bd427bd05 Remove filetypes.h and Scintilla includes from geany.h; Add VALID_DOC_IDX macro
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@751 ea778897-0a13-0410-b9d1-a72fbfd435f5
2006-08-20 20:39:59 +00:00
Enrico Tröger
8d581d1552 Added new filetype Fortran 77 (not yet finished).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@724 ea778897-0a13-0410-b9d1-a72fbfd435f5
2006-08-15 17:57:41 +00:00
Enrico Tröger
6cc29173be Added new filetype D(patch by Christop Berg, thanks).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@544 ea778897-0a13-0410-b9d1-a72fbfd435f5
2006-07-09 14:41:53 +00:00
Enrico Tröger
df1b9fd010 new filetype Tcl/Tk, renamed tex.c
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@335 ea778897-0a13-0410-b9d1-a72fbfd435f5
2006-05-16 19:04:04 +00:00
Enrico Tröger
a267d33536 new filetype Ruby
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@311 ea778897-0a13-0410-b9d1-a72fbfd435f5
2006-05-09 16:07:27 +00:00
Enrico Tröger
002503decd several bugfixes and improvements
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@281 ea778897-0a13-0410-b9d1-a72fbfd435f5
2006-04-27 18:06:35 +00:00
Enrico Tröger
fb29b7947b added italic flag to all styles, added background colour for current line
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@242 ea778897-0a13-0410-b9d1-a72fbfd435f5
2006-03-10 21:43:28 +00:00
Enrico Tröger
e16eac2ae8 added new filetypes SQL, Caml and OMS
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@185 ea778897-0a13-0410-b9d1-a72fbfd435f5
2006-02-10 20:52:17 +00:00
Enrico Tröger
3833734cee added missing GEANY_HIGHLIGHTING_H
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@105 ea778897-0a13-0410-b9d1-a72fbfd435f5
2006-01-03 12:46:20 +00:00
Enrico Tröger
62a10a5694 added new file Assembler
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@34 ea778897-0a13-0410-b9d1-a72fbfd435f5
2005-12-05 20:50:46 +00:00
Enrico Tröger
c9d315b247 added new filetype Conf
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@20 ea778897-0a13-0410-b9d1-a72fbfd435f5
2005-11-27 20:46:36 +00:00
Enrico Tröger
8cb2cf0997 Initial import
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4 ea778897-0a13-0410-b9d1-a72fbfd435f5
2005-11-22 12:26:26 +00:00