70 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
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
Lex Trotman
fa118fb12a Add build command access to plugin interface
Add ability for plugins to read and edit the fields of the build commands.
2012-02-15 14:18:34 +11:00
Colomban Wendling
0aea05d10d Fix various integer signedness and minor styling issues
Most noteworthy change is that all build commands IDs and groups are
now unsigned everywhere negative values aren't explicitly handled with
a special meaning.  This should not change anything in behavior, only
makes clear the index won't underflow.
2011-12-18 00:32:22 +01:00
Colomban Wendling
d06e9f4575 Remove $Id$ and $Date$ SVN keywords 2011-10-09 22:57:35 +02:00
Nick Treleaven
478f91a129 Move build_menu_prefs to keyfile.c, it's only used there.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5947 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-09-22 15:55:10 +00:00
Colomban Wendling
44e5687e0b Allow editing of formerly hidden preferences in the preferences dialog
Patch by Dimitar Zhekov, thanks! (closes P#3313315)

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5871 ea778897-0a13-0410-b9d1-a72fbfd435f5
2011-07-28 17:59:22 +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
3637847355 Replace doc-comments with '/* *' comments to show there's no build
API for plugins.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5478 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-12-08 17:13:10 +00:00
Nick Treleaven
9add067c04 Remove the "Set build working directories" button from the project
properties dialog (patch by Jiří Techet, thanks).



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5194 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-08-24 12:07:28 +00:00
Nick Treleaven
7f572468e5 Replace GeanyBuildCommand::entries array with separate fields.
Similar to r5077 in the bs2 branch, but with less loop unrolling.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5184 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-08-20 15:55:30 +00:00
Nick Treleaven
ada3336bd8 Limit build error editor indicators to 50, but parse all errors in
the Compiler tab (fixes #3019823).



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5081 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-07-01 17:08:00 +00:00
Nick Treleaven
16c632f579 Add Build prefix for TableFields, TableData.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4904 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-05-11 14:55:47 +00:00
Nick Treleaven
92c3140798 Make some ugly build.h global variables static.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4903 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-05-11 14:38:42 +00:00
Enrico Tröger
8c963d2829 Make string arguments const where appropriate (patch by Colomban Wendling, thanks).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4862 ea778897-0a13-0410-b9d1-a72fbfd435f5
2010-04-25 17:43:39 +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
29b8a57133 Move function doc-comments to build.c so they stay in sync. Note:
these functions are still not in the API.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4367 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-10-26 14:59:47 +00:00
Lex Trotman
a231fa36d8 Include code for project filetype execute commands and fix bug in
saving project filetypes list.


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4351 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-10-22 00:46:54 +00:00
Nick Treleaven
1986d915cc Run ./scripts/fix-alignment.pl -w src/*.[hc] plugins/*.[hc] (skipping generated files).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4199 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-09-16 14:13:38 +00:00
Enrico Tröger
210fa0018a Adjust coding style (no code changes).
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4159 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-09-06 16:50:20 +00:00
Nick Treleaven
931f14d2ae Use build_ prefix for 3 functions in build.h; add a static modifier.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4130 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-08-26 17:25:28 +00:00
Nick Treleaven
e02b7a3864 Don't generate build.h API docs until everything is approved and
functions are actually in geany_functions.
Move new GeanyFiletype and GeanyProject field(s) to end of struct
as they may be changed or made private later.
Break ABI for fields removed.



git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/build-system@4117 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-08-24 12:39:13 +00:00
Lex Trotman
8a4b302d7f Make build API symbols prefixed GEANY_
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/build-system@4043 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-07-30 02:04:08 +00:00
Nick Treleaven
9280feabf8 Minor edits to doc comments.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/build-system@4037 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-07-28 12:13:45 +00:00
Lex Trotman
6108436176 Fix warnings, build API and execute toolbutton
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/build-system@4033 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-07-28 01:38:41 +00:00
Nick Treleaven
e3b1c92aa8 Fix some gcc warnings with '-Wall -W -ansi' enabled.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/build-system@4030 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-07-27 16:37:23 +00:00
Lex Trotman
4af6c2fd62 Added Plugin interface for Build menu functionality
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/build-system@4011 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-07-22 03:04:17 +00:00
Lex Trotman
9d348018c7 Build commands & project dialog improvements
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/build-system@3992 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-07-19 09:20:37 +00:00
Lex Trotman
3bc23327f5 Fix many warnings, remove make cmd preference
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/build-system@3982 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-07-17 00:23:38 +00:00
Lex Trotman
3456b7cc4a Implement Working directory fields
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/build-system@3972 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-07-16 05:52:58 +00:00
Lex Trotman
6ec0ff6723 Implement multiple execute commands & minor fixes
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/build-system@3970 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-07-15 06:55:12 +00:00
Lex Trotman
bc8f9f771e added dialog support for error regexes
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/build-system@3959 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-07-14 07:15:31 +00:00
Lex Trotman
8837c077b3 Fixed filetype priorities with project menu items
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/build-system@3952 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-07-11 12:46:17 +00:00
Lex Trotman
e345d180d2 Fixed load/save filetypes build config, implemented Build Commands Dialog clear button
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/build-system@3947 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-07-10 09:00:37 +00:00
Lex Trotman
1726e57092 Configurable Build Menu Alpha
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/build-system@3941 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-07-09 06:49:42 +00:00
Enrico Tröger
8d6a40a76b Increase the amount of highlighted build error messages to 100.
At least for LaTeX we need higher values as there is a lot of informative output before any errors are reported.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3732 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-04-24 19:31:00 +00:00
Enrico Tröger
e908e38a89 Limit the amount of highlighted build error messages in the Compiler window to 50 for performance reasons.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3725 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-04-21 20:54:50 +00:00
Enrico Tröger
204b62d000 Add 'Build' toolbar button with a submenu for Make actions.
Make use of ui_image_menu_item_new() for some menu items.
Remove tooltips from menu items.

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3479 ea778897-0a13-0410-b9d1-a72fbfd435f5
2009-01-17 17:59:20 +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
71e03b2cb0 Add Previous Error menu item.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2727 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-06-26 16:17:28 +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
41801ae852 Rename BuildInfo struct to GeanyBuildInfo.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2595 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-05-16 14:35:41 +00:00
Enrico Tröger
b7bfb2743a Replace all C++-style comments with usual C-like multi-line comments.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2287 ea778897-0a13-0410-b9d1-a72fbfd435f5
2008-02-27 13:17:29 +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