123 Commits

Author SHA1 Message Date
Thomas Martitz
def1600a5b
Merge PR #1813
This adds a tree view mode to the document list in the sidebar and enables it by default.

Based on previous work by Pavel Roschin <roshin@scriptumplus.ru>, see #259
2022-06-08 14:47:23 +02:00
Thomas Martitz
20bd9c44ea Add a unit test program to check the new sidebar documents tree view
The test program checks if open documents are grouped correctly by
their parent directory. The older modes (plain document list and two-level
tree) also get a distinct test. For this to work some symbols
must become visible from libgeany.

The test uses g_strv_length() which is relatively new.
Autoconf and meson checks are added as needed.
2022-06-08 07:54:00 +02:00
Thomas Martitz
9e1c79079b Refactor GTK-related autoconf checks
- Move to separate file geany-gtk.m4
- Merge gthread checks into the main gtk ones
2022-06-08 07:53:59 +02:00
Jiří Techet
41d771c205 Remove built in globbing support when generating tag files
We can rely on shell to expand wildcards for us and the current detection
of whether globbing should be enabled based on \" presence is questionable,
undocumented and probably unused.
2022-05-17 18:51:52 +02:00
Thomas Martitz
5e22dfae22 Prepare for meson build system
Autotools-based builds will be supported for some time. This patch makes
some modifications to the Autotools build system necessary to to co-exist
with meson.

- LOCALEDIR and DATADIR won't be defined, replace with GEANY_* where necessary
- VERSION won't be defined, use PACKAGE_VERSION and PACKAGE_STRING instead
- Doxyfile cannot be generated by configure, which wouldn't run in a meson
  build. Generate both Doxyfile and Doxyfile-gi manually using sed
- actual shell script to generate signallist.i (inline shell not a thing in meson)
- path of signallist.i will change, exclude callbacks.c from doxygen
  to make it happy
- geany icon for 24x24 size such that one exists for all sizes
- install license file for Lexilla
- change how tests are run a bit so that runner.sh will also work for meson
- check for dirent.h, required by ctags
2022-03-14 22:08:47 +01:00
Thomas Martitz
c760e4d172 Resolve a few warnings reported by autoreconf on my system
- AC_PROG_CC_C99 is deprecated, replace with just AC_PROG_CC and an explicit
test for C99 using cache values.
- AM_PROG_LIBTOOL is deprecated, replace with LT_INIT
- AC_USE_SYSTEM_EXTENSIONS must be used before AC_LINK_IFELSE, apparently
2022-02-10 21:43:51 +01:00
Thomas Martitz
32977676a9
autotools: use autoreconf and gettext (#2938)
autoreconf is much more convenient over calling the autotools programs individually.

Standard gettext should be used over glib's glue these days.
AM_GLIB_GNU_GETTEXT and glib-gettextize are deprecated. This helps
the meson build (#2761) as well as working with intltool is harder over there. 
gettext, on the other hand, is supported out of the box in meson.

Beware, autopoint is a new dependency when building from git,should not affect tarballs.

Inspired by:
https://wiki.gnome.org/Initiatives/GnomeGoals/GettextMigration
0b4d03017f
2021-12-25 20:55:05 +01:00
Thomas Martitz
7694aa5acb
Update to Scintilla5 (#2867)
* Update Scintilla to version 5.1.1

A few notes:
- C++17 is required
  Not exactly new since we already imported the latest julia lexer.
- upstream split out lexers into a lexilla library
  We do "comply" by building a separate static library. So in effect, all
  lexers are built-in like before. In the future it may be possible to add
  lexer plugins at runtime.
- Lexer IDs are deprecated in favor of names
  For now we use LexerNameFromID() to map IDs to names but we should
  transition to names soon.
  That being said, the upstream transition seems also not complete.
  There is no name-based version of SCI_GETLEXER, so we're stuck with IDs
  there.

Closes #2824

* Update scintilla_changes.patch

The "which lexers" part is now a separate function that should be less
of a pain when updating to scintilla version that adds lexers.

* Update update-scintilla.sh

You need to extract lexilla sources too now and pass it to the script.
Also the script calls dos2unix for the files, kill that CRLF!
2021-10-10 09:46:37 +10:00
Colomban Wendling
11a1f32fd4 Post release version bump
Say hello to Geany 1.39 "Pryce"!

It might end up with another version number, but 1.39 is good enough
for now at least.
2021-10-09 17:43:42 +02:00
Matthew Brush
ebf7d80f6b
Update C++ compiler check to require C++17 (#2862) 2021-09-07 10:17:58 +10:00
Thomas Martitz
b524a58e12 Merge branch 'gh-codebrainz/remove-gtk2' into master
This merge removes GTK2 support entirely only GTK3 is left.

Closes #2602
2021-05-29 14:17:42 +02:00
Colomban Wendling
c5303c9499 Check for asprintf and tempnam and cleanup function checks
- Add the missing check for asprintf which brakes build on Windows/MSYS.
- Add fallback check for tempnam if mkstemp is not found.
- Group functions checks for u-ctags together.
2020-11-22 22:35:24 +01:00
Colomban Wendling
b1c9096394 Add bundled fnmatch from upstream ctags
If we don't have `fnmatch()` (e.g. on Windows), use the bundled version
from upstream ctags.
2020-11-22 11:45:30 +01:00
Colomban Wendling
33fc269ea8 Add GNU regex bundle from upstream ctags and use it if missing
If we don't have `regcomp()` (e.g. on Windows), use the bundled GNU
regex from upstream ctags.
2020-11-22 11:45:30 +01:00
Jiří Techet
92382dcdbc Update to latest ctags main
See commit 2aa034a30dc54f5db18db2c9140821f64426283e upstream.
2020-11-18 13:22:41 -08:00
Colomban Wendling
00ca7e7af8 Post release version bump
Say hello to Geany 1.38 "Sulamar"!
2020-10-25 19:39:01 +01:00
Colomban Wendling
b2151bd5f0 Merge pull request #2223 from b4n/windows-py-command
Allow to select the Python command, and use `py` on Windows
2020-10-10 09:29:23 +02:00
Matthew Brush
d065c50985 Initial pass at remove GTK+2
Updating the build system and some of the conditional code.
More to come.
2020-10-04 05:31:01 -07:00
Matthew Brush
8184f91a8f Make GTK3 build default, and GTK2 build optional
* Replace `--enable-gtk3` with `--enable-gtk2`
* Update Travis CI builds
* Change `cross-build-mingw.sh` default to GTK3 and cleanup a little

After this commit it will be required to pass `--enable-gtk2` to
the Autoconf script in order to build with GTK+2, otherwise GTK+3
will be required.
2020-10-04 05:22:06 -07:00
Colomban Wendling
c9bdd73d82 Post release version bump
Say hello to Geany 1.37 "Wolbam"!
2019-09-28 15:52:12 +02:00
Nick Treleaven
411aa99c00 configure: check for realpath function now MSYS2 has it (#2263)
Fixes #2261.
2019-09-21 10:10:25 +10:00
Colomban Wendling
13f7618e10 Use the py launcher for Python filetype on Windows
Fixes #2211.
2019-07-18 18:21:18 +02:00
Colomban Wendling
28a5b1029b Add support for selecting the default Python command
Add a configure option to select the command used as the Python
interpreter by default in the Python filetype.

This can typically be useful if a setup has non-standard paths or do
not provide a generic `python` interpreter but only versioned ones.
2019-07-18 18:19:11 +02:00
Colomban Wendling
11436f58de Post release version bump
Say hello to Geany 1.36 "Poliff"!
2019-04-28 17:36:02 +02:00
Enrico Tröger
4bad8ef5d4 Remove unused spec (RPM) file
The original intention was to easily build RPM packages by
users and developers. Nowadays, there are professional
Fedora, Suse and whatever RPM spec files available
for the according distributions.
So we can remove this unmaintained file to reduce confusions.

Fixes #2044.
2019-01-20 22:47:24 +01:00
Colomban Wendling
4452b365bf Merge pull request #1263 from techee/ctags_sync_main
First part of syncing with Universal-CTags.
2018-12-17 21:37:43 +01:00
Colomban Wendling
560e559a2a Post release version bump
Say hello to Geany 1.35 "Siralt"!
2018-12-16 13:47:25 +01:00
Colomban Wendling
3458045af4 Merge pull request #1182 from b4n/gtk3-auto-detect_v2
Autotools: Detect GTK version to use automatically.  GTK2 is still the
default if both GTK2 and GTK3 are present.
2018-12-09 11:49:41 +01:00
Colomban Wendling
13559896fe autotools: Detect GTK version to use automatically 2018-12-09 11:48:52 +01:00
Colomban Wendling
1c3634ebb9 Update functions and declarations checks for current ctags 2018-12-09 09:45:49 +01:00
Jiří Techet
99e0f208b2 Merge branch 'master' into ctags_sync_main
# Conflicts:
#	ctags/main/lcpp.c
#	ctags/main/parse.c
2018-10-13 14:25:12 +02:00
Enrico Tröger
6c531e7143 Post release version bump
Say hello to Geany 1.34 "Keong"!
2018-02-25 15:47:14 +01:00
Enrico Tröger
ca16aff4c5 Post release version bump
Say hello to Geany 1.33 "Gorgon"!
2017-11-19 13:57:22 +01:00
Colomban Wendling
18360460ab Update Scintilla to version 3.7.5 (#1503)
* Update Scintilla to version 3.7.5

This now requires a C++11-capable compiler.

Closes #1308.

* Test using newer dist on Travis

Since Scintilla needs C++11

* Add debugging code for when configure fails

* Workaround a pkg-config-corsswrapper bug on Ubuntu 14.04

See https://bugs.launchpad.net/ubuntu/+source/mingw-w64/+bug/1327242
2017-07-25 09:24:05 +10:00
Enrico Tröger
2d9f97debd Post release version bump
Say hello to Geany 1.32 "Bemos"!
2017-07-16 15:29:55 +02:00
Frank Lanitz
6e1a1633b5 Update bugtracker URL to github 2017-03-19 18:57:38 +01:00
Colomban Wendling
3303bde758 Post release version bump
Say hello to Geany 1.31 "Trevin"!
2017-03-05 16:17:03 +01:00
Jiří Techet
617684666a Remove unnecessary use of AH_TEMPLATE 2017-02-15 11:36:56 +01:00
Colomban Wendling
a0449320b7 Post release version bump
Say hello to Geany 1.30 "Calron"!
2016-11-13 18:03:47 +01:00
Jiří Techet
32dfa2878a Some initial work on ctags as a library
Protect library-specific stuff by CTAGS_LIB macro which also makes it
better visible what changes had to be made to convert ctags into library.
Changes which need further Geany sync and aren't library-related aren't
protected by the macro.

Move things from geany.c/h to the locations where they belong and rename
geany.c/h to api.c/h into which API-like functions will be moved in the
next commits (mostly things from tm_ctags_wrappers.c/h).

Add complete main.c from uctags and just remove main() using the CTAGS_LIB
macro.
2016-10-15 00:14:37 +02:00
Jiří Techet
88cbe3871c Grab ctags version of general.h and make related changes
Added e_msoft.h, changed configure.ac to make more checks for header files
so we have corresponding macros defined, drop HAVE_REGEX macro check which
isn't defined any more, drop debugging function from lua parser (complains
about missing definition of errout).

Tested only on Linux (TODO: Windows, OS X)
2016-10-08 14:13:41 +02:00
Jiří Techet
2b8c7ae5ad Sync the rest of routines.c/h
Requires checking for errno.h limits.h in autoconf as there are ifdefs
around those in routines.c.
2016-10-08 14:12:45 +02:00
Colomban Wendling
e3f7d256c3 Test whether the C++ compiler works by compiling a test program
This is more reliable than using `which`, which doesn't work if the CXX
environment variable is set to something else than an executable (e.g
contains options), and is apparently less portable on some systems.

See:
 * http://lists.geany.org/pipermail/devel/2009-September/001367.html,
   which lead to 5bb28825aadb43ea8ba536c34970d53860b50759.
 * https://sourceforge.net/p/geany/bugs/455/, which lead to a revert
   of the above, 5b9605a9d6d799629b8ed3163596069c8c948b06.

Fixes #829.
2016-07-31 00:54:56 +02:00
Jiří Techet
eb2865a819 Separate ctags into parsers and main sources 2016-07-21 13:08:42 +02:00
Jiří Techet
18b7527fcc Use the single-file implementation of MIO from universal-ctags
The version of MIO corresponds to commit 509a47dbc in universal-ctags
which contains just minimal changes mostly related to changing MIO from
a library into a single ctags source file:

- replaced the glib types with ordinary C types
- removed the "virtual" calls and replaced them with simple if/else
- made the implementation in a single file
- reformatted the library to more or less match universal-ctags style
- removed the MIO_FORCE_ANSI ifdef as it included some glib file and
  we don't really need it
- added mio_flush() - of course makes sense just for the file backend
  (calls fflush())
- made mio_free() return error code from fclose()
- changed mio_new_fp() to return NULL when the passed FILE is NULL
  (simplifies logic at one place in ctags and makes sense IMO)
2016-07-21 13:08:42 +02:00
Jiří Techet
3d2e7d4fca Move TM into src
Move the tag manager implementation to src as it really is part of Geany
sources and start making the ctags directory structure similar to
the universal-ctags one.

In principle, the patch does

mv tagmanager/src src/tagmanager
mv tagmanager/ctags tagmanager/main
mv tagmanager ctags

plus corresponding Makefile.am and configure.ac updates.
2016-07-21 13:08:42 +02:00
Colomban Wendling
5b6b89fd5b Post release version bump
Say hello to Geany 1.29 "Jowar"!
2016-07-10 16:07:56 +02:00
Thomas Martitz
314a5c180e geanyobject: properly register signals
If possible, register signals with the proper argument types (boxed or gobject).
This is required for successful introspection of the signals and important
for GI-based plugins.

As for the marshallers, if available use a predefined one from glib. Otherwise
use the generic marshaller available since 2.30 (in theory all signals could
use that one but it has a bit of overhead).

This builds on the gboxed conversions of earlier commits.

This also bumps the minimum glib requirement.
 - g_cclosure_marshal_generic requires 2.30 (if NULL is passed as marshaller
   to g_signal_new())
 - G_TYPE_KEYFILE requires 2.32
2016-06-23 22:33:43 +02:00
Colomban Wendling
ea94d2a9a1 Post release version bump
Say hello to Geany 1.28 "Malvek"!
2016-03-13 14:32:20 +01:00
Colomban Wendling
47816339b6 Merge pull request #911 from b4n/deprecations
Deprecations cleanup and improvement
2016-03-01 19:25:53 +01:00