8793 Commits

Author SHA1 Message Date
Jiří Techet
9745d470c6 Sync whitespace in parsers 2016-08-07 02:01:33 +02:00
Jiří Techet
11dcc5e3e5 Fix indentation 2016-08-06 22:42:37 +02:00
Jiří Techet
026da60fd0 Move selected() under Miscellaneous macros 2016-08-06 22:42:15 +02:00
Jiří Techet
0650707ce5 Fix pascal tag initizalization 2016-08-06 22:06:41 +02:00
Jiří Techet
0ec3590e19 Remove makeSimpleScopedTag() and fix scope for conf filetype 2016-08-06 22:01:05 +02:00
Jiří Techet
530f47584a Revert "Rename "mio" member of sInputFile to "fp""
Let's rename fp to mio in uctags instead.

This reverts commit 3dd1fb4853952d8fd80963952a03299e9b2c8012.

Conflicts:
	ctags/main/read.c
	ctags/main/read.h
2016-08-06 16:34:37 +02:00
Jiří Techet
eb45c80058 Always define ExecutableName variable 2016-08-03 12:21:51 +02:00
Jiří Techet
7e0845b083 Make PathDelimiters match the declaration in header 2016-08-03 12:20:57 +02:00
Jiří Techet
9c4c113488 Remove some additional functions from ctags which we don't need in Geany
These are useless for Geany and introduce some compilation errors at the
moment so drop them for now.
2016-08-03 12:00:14 +02:00
Jiří Techet
ea72ecc00f Remove ctags.c and move its content to routines.c, main.c and options.c
This is mostly just moving code with just some minor modifications:
- removal of code of unsupported platforms (VAX, OS2, etc.)
- syncing includes/headers of affected files with uctags
- removal of some functions we don't need in Geany and whose movement
  would require additional changes (those will get added back when
  doing final sync with uctags)
- minor whitespace syncs
2016-08-03 00:27:22 +02:00
Jiří Techet
d440a81166 Add tagRegexTable to parserDefinition and use it to define regex parsers
Also whitespace-format regexes so they match uctags.
2016-08-01 23:48:06 +02:00
Jiří Techet
1b32ac5481 Add full xtag implementation and use it to check XTAG_QUALIFIED_TAGS 2016-08-01 18:58:27 +02:00
Jiří Techet
8c0bfbb0f3 Add parserNewFull() and use it for selected parsers
For now just to eliminate diff from parsers, the actual custom file tag
isn't supported (unused by Geany anyway).
2016-08-01 18:33:21 +02:00
Jiří Techet
781f4ef1ca Use getInputLineNumber() instead of getSourceLineNumber() in parsers
We want the line number of the tag appearance, not the line after
#line directives are processed.
2016-08-01 01:34:50 +02:00
Jiří Techet
4fbd38f690 Pass kind information into initTagEntry()
The usage in lregex is hacky (casting const char * to char *) but it's
the quickest way to implement it right now (the question is whether
we shouldn't revert back to POSIX regex and simply use the uctags
implementation).
2016-08-01 00:43:18 +02:00
Jiří Techet
359c60b81b Rename get.c/h to lcpp.c/h 2016-07-31 21:00:58 +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
0ed5c16b46 Rename tagEntryInfo.extensionFields.scope
This requires moving kindOption into a separate file because of circular
include dependency. Also eliminate now redundant tagLetter() function
in c.c.
2016-07-30 16:04:06 +02:00
Jiří Techet
cb1c15483b Eliminate some trivial diffs in read.c
Mostly indentation and comment stuff. We can replace the implementation
of readSourceLine() with readLineFromBypass() as it's never used in Geany.
2016-07-30 13:49:53 +02:00
Jiří Techet
781738fe10 Replace fileGetc() with getcFromInputFile() also in comments 2016-07-30 13:11:45 +02:00
Jiří Techet
ba2209e4a6 Rename readLine() to readLineRaw()
Plus make some minor changes in its implementation to match uctags.
2016-07-30 13:10:10 +02:00
Jiří Techet
bbbbb309ba Rename fileReadLine() to readLineFromInputFile() 2016-07-30 12:57:22 +02:00
Jiří Techet
bf2b64239a Rename fileGetNthPrevC() to getNthPrevCFromInputFile() 2016-07-30 12:51:24 +02:00
Jiří Techet
61278d4031 Rename fileSkipToCharacter() to skipToCharacterInInputFile() 2016-07-30 12:50:57 +02:00
Jiří Techet
357e4fe1bd Rename fileUngetc() to ungetcToInputFile() 2016-07-30 12:31:59 +02:00
Jiří Techet
acdc44074f Rename fileGetc() to getcFromInputFile() 2016-07-30 12:23:42 +02:00
Jiří Techet
1e36d2367e Add separate "input" entry to sInputFile and use it
This patch basically just replaces

sInputFile.name -> sInputFile.input.name
sInputFile.lineNumber -> sInputFile.input.lineNumber

plus some minor related stuff.
2016-07-30 11:53:26 +02:00
Jiří Techet
7ac17b662f Eliminate readNextChar() and pushBackChar() 2016-07-30 00:40:37 +02:00
Jiří Techet
3dd1fb4853 Rename "mio" member of sInputFile to "fp" 2016-07-30 00:32:59 +02:00
Jiří Techet
ae8dc545ce Add keywordTable to parserDefinition and use a common way to initialize keywords 2016-07-29 22:50:11 +02:00
Jiří Techet
6bc5797987 Don't use combination of tabs and spaces for indentation
This was done using Geany's "replace tabs with spaces" followed by
"replace spaces with tabs" plus a lot of manual work because the
indentation was inconsistent in many cases.
2016-07-29 22:03:56 +02:00
Jiří Techet
bf0702e2ec Use uctags implementation of keyword.c/h
Basically just the stuff I added to uctags to improve hashing of keywords.

This patch drops some extra stuff from uctags we don't need at the moment
and which would require changes in other files.
2016-07-29 16:55:07 +02:00
Jiří Techet
282ed7def7 Define ARRAY_SIZE() and use it instead of KIND_COUNT() 2016-07-28 23:56:05 +02:00
Jiří Techet
001c7f65e4 Move keywordTable definition to parse.h and use it for all parsers 2016-07-28 23:56:05 +02:00
Jiří Techet
7b9d0dd83c Make parser includes closer to uctags and sync parser license header
Adds (currently empty) debug.h, routines.h and xtag.h and uses them at the
same places like uctags.
2016-07-28 23:55:56 +02:00
Jiří Techet
f791e91e18 ctags: Rename Geany-specific tagEntryInfo::arglist to upstream's ::signature
Based on patch from Colomban Wendling.
2016-07-28 21:06:59 +02:00
Jiří Techet
7068e7c892 ctags: Remove useless Geany-specific tagEntryInfo::type field
Original patch from Colomban Wendling, only converted to apply to the new
ctags location in the source tree.
2016-07-28 21:02:40 +02:00
Jiří Techet
ffa09b0ae2 ctags: Remove unused Geany-specific tagEntryInfo fields
Original patch from Colomban Wendling, only converted to apply to the new
ctags location in the source tree.
2016-07-28 20:57:03 +02:00
Colomban Wendling
5d8e291c6f Merge pull request #1070 from techee/tm_move
Move TM and ctags files
2016-07-25 02:06:20 +02:00
Colomban Wendling
cbe2c542e0 Merge pull request #1133 from techee/readme_rst
Minor README updates
2016-07-25 02:02:50 +02:00
Jiří Techet
b7f47f2932 Update Colomban's email address 2016-07-25 01:02:59 +02:00
Jiří Techet
af3ad0b6f0 Rename variable to avoid warning about variable being shadowed 2016-07-23 00:36:04 +02:00
Jiří Techet
3cf0161527 Store "equal" tags into binary trees instead of lists in Symbol tree
At the moment tags with identical names are stored into a linked list in
tags_table and parents_table. This however leads to quadratic complexity
when looking up the nearest parent or tag in tree because the whole list
has to be traversed.

Use binary trees indexed by line number instead of lists so the lookup can
be performed in log(N) time and the overall complexity is N*log(N) instead
of N^2.

The GTree API is a little stupid because during the search it doesn't give
access to the value and it doesn't tell when a leaf node was reached. For
this reason the lookup has to be made in two steps - first, the best line
number is found (returned in user_data) and then a normal search for the
found line number is made to get the value stored in the tree.

This patch fixes the problem described in #577 when e.g. a big json export
file contains many identically named tags.
2016-07-22 23:21:09 +02:00
Jiří Techet
f95656cbe8 Remove makefile.win32 based build system
No more needed using MSYS2.
2016-07-21 13:21:32 +02:00
Jiří Techet
3b4d9fadf8 Rename js.c to jscript.c to match universal-ctags 2016-07-21 13:14:21 +02:00
Jiří Techet
470d99ee94 Update various comments mentioning tagmanager/src 2016-07-21 13:14:21 +02:00
Jiří Techet
03becc7789 Update paths for doxygen 2016-07-21 13:14:21 +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