geany/ctags/Makefile.am

138 lines
2.3 KiB
Makefile
Raw Permalink Normal View History

AM_CPPFLAGS = \
-I$(srcdir)/main \
-I$(srcdir)/parsers \
-DG_LOG_DOMAIN=\"CTags\"
AM_CFLAGS = \
$(GTK_CFLAGS) \
@LIBGEANY_CFLAGS@
noinst_LTLIBRARIES = libctags.la
parsers = \
parsers/abaqus.c \
parsers/abc.c \
parsers/asciidoc.c \
parsers/asm.c \
parsers/basic.c \
parsers/bibtex.c \
parsers/c.c \
parsers/cobol.c \
Sync ctags with upstream so that most parsers can be copied from uctags (#2018) * Use latest version of htable * Use latest version of mio * Use latest version of objpool * Use latest version of ptrarray * Use latest version of vstring This also requires adding trashbox.c/h which is now used by vstring and inline macros from inline.h. * Rename fieldSpec to fieldDefinition See b56bd065123d69087acd6f202499d71a86a7ea7a upstream. * Rename kindOption to kindDefinition See e112e8ab6e0933b5bd7922e0dfb969b1f28c60fa upstream * Rename kinds field in parserDefinition to kindTable See 09ae690face8b5cde940e2d7cf40f8860381067b upstream. * Rename structure fields about field in parserDefinition See a739fa5fb790bc349a66b2bee0bf42cf289994e8 upstream. * Use kindIndex instead of kindDefinition This patch replaces kindDefinition related entries from sTagEntryInfo with kindIndex so kinds are referenced indirectly using the index. For more info please refer to commits: 16a2541c0698bd8ee03c1be8172ef3191f6e695a f92e6bf2aeb21fd6b04756487f98d0eefa16d9ce Some other changes had to be made to make the sources compile (without bringing all the diffs from upstream). At some places, which aren't used by Geany, only stub implementations have been created. In particular, the regex parser has been disabled (for now?) because its current implementation doesn't allow accessing kindDefinitions using index and allowing this would require big changes in its implementation. The affected parsers are Cobol, ActionScript and HTML. For HTML we can use the token-based parser from upstream, and we should consider whether Cobol and ActionScript are worth the effort to maintain a separate regex implementation using GRegex (IMO these languages are dead enough not to justify the extra effort). The patch also disables tests for languages using regex parsers. * Rename roleDesc to roleDefinition See 1345725842c196cc0523ff60231192bcd588961b upstream. Since we don't care about roles in Geany, we don't have to do the additional stuff the upstream patch does. * Add XTAG_ANONYMOUS used by jscript See 0e4c5d4a0461bc8d9616fe3b97d75b91d014246e upstream. * Include stdint.h in entry.h * Don't use hash value as an Anonymous field identifier Instead of something like "Anonymous0ab283cd9402" use sequential integer values like "Anonymous1". * Call anonReset in main part See 3c91b1ea509df238feb86c9cbd552b621e462653 upstream. * Use upstream javascript parser * Use upstream css parser * Create correctly sized MIO for 0 size See https://github.com/universal-ctags/ctags/pull/1951 * Always enable promise API and subparsers for Geany * Support subparsers in Geany and add HTML parser demonstrating this feature This feature requires several changes: 1. Propagating language of the tag from ctags to Geany so we know whether the tag comes from a master parser or a subparser. 2. We need to address the problem that tag types from a subparsers can clash with tag types from master parsers or other subparsers used by the master parser. For instance, HTML and both its css and javascript subparsers use tm_tag_class_t but HTML uses it for <h2> headings, and css and javascript for classes. Representing all of them using tm_tag_class_t would lead to complete mess where all of these types would for instance be listed in the same branch of the tree in the sidebar. To avoid this problem, this patch adds another mapping for subparsers where each tag type can be mapped to another tag type (which isn't used neither by master parser or other subparsers). To avoid unwanted clashes with other parsers, only tags explicitly mentioned in such mappings are added to tag manager; other subparser tags are discarded. For HTML this patch introduces mapping only for tm_tag_function_t (which in this case maps to the same type) to mimick the previous HTML parser behavior but other javascript and css tag types can be added this way in the future too. 3. Since in most of the code Geany and tag manager assume that tags from one file use the same language, subparser's tags are modified to have the same language like the master parser. 4. HTML parser itself was copied from upstream without any modifications. Tests were fixed as the parser now correctly ignores comments. * Rename truncateLine field of tagEntryInfo See 0e70b22791877322598f03ecbe3eb26a6b661001 upstream. Needed for Fortran parser. * Add dummy mbcs.h and trace.h Included by javascript parser. * Introduce an accessor to `locate' field of `Option' See fb5ef68859f71ff2949f1d9a7cab7515f523532f upstream. Needed for Fortran. * Add numarray.c/h Needed by various parsers. * Add getLanguageForFilename() and getLanguageForCommand() See 416c5e6b8807feaec318d7f8addbb4107370c187 334e072f9d6d9954ebd3eb89bbceb252c20ae9dd upstream. Needed for Sh parser. * txt2tags: Fix scope separator definition and re-enable tests * Rename rest.c to rst.c to match upstream filename * Use upstream asciidoc and rst parsers * Add asciidoc and rst unit tests * Rename conf.c to iniconf.c to match upstream filename * Add tests of conf, diff, md parsers from universal ctags * Add more ctags unit tests This patch adds unit tests for: nsis, docbook, haskell, haxe, abaqus, vala, abc. The only missing unit tests are for GLSL and Ferite parsers which however share the implementation with the C parser and should be reasonably well covered by other C-like language tests. The tests were put together from various tutorials and help of the languages in order to cover the tags these parsers generate. No guarantee they'd compile with real parsers. * Rename latex.c to tex.c to match upstream filename * Rename entry points of parsers to match upstream names * Initialize trashbox * Add newline to the end of file
2019-04-05 19:14:30 -07:00
parsers/iniconf.c \
parsers/css.c \
parsers/diff.c \
parsers/docbook.c \
parsers/erlang.c \
parsers/flex.c \
parsers/fortran.c \
parsers/go.c \
parsers/haskell.c \
parsers/haxe.c \
parsers/html.c \
parsers/jscript.c \
parsers/json.c \
parsers/lua.c \
parsers/make.c \
parsers/markdown.c \
parsers/matlab.c \
parsers/nsis.c \
parsers/objc.c \
parsers/pascal.c \
parsers/perl.c \
parsers/php.c \
parsers/powershell.c \
parsers/python.c \
parsers/r.c \
Sync ctags with upstream so that most parsers can be copied from uctags (#2018) * Use latest version of htable * Use latest version of mio * Use latest version of objpool * Use latest version of ptrarray * Use latest version of vstring This also requires adding trashbox.c/h which is now used by vstring and inline macros from inline.h. * Rename fieldSpec to fieldDefinition See b56bd065123d69087acd6f202499d71a86a7ea7a upstream. * Rename kindOption to kindDefinition See e112e8ab6e0933b5bd7922e0dfb969b1f28c60fa upstream * Rename kinds field in parserDefinition to kindTable See 09ae690face8b5cde940e2d7cf40f8860381067b upstream. * Rename structure fields about field in parserDefinition See a739fa5fb790bc349a66b2bee0bf42cf289994e8 upstream. * Use kindIndex instead of kindDefinition This patch replaces kindDefinition related entries from sTagEntryInfo with kindIndex so kinds are referenced indirectly using the index. For more info please refer to commits: 16a2541c0698bd8ee03c1be8172ef3191f6e695a f92e6bf2aeb21fd6b04756487f98d0eefa16d9ce Some other changes had to be made to make the sources compile (without bringing all the diffs from upstream). At some places, which aren't used by Geany, only stub implementations have been created. In particular, the regex parser has been disabled (for now?) because its current implementation doesn't allow accessing kindDefinitions using index and allowing this would require big changes in its implementation. The affected parsers are Cobol, ActionScript and HTML. For HTML we can use the token-based parser from upstream, and we should consider whether Cobol and ActionScript are worth the effort to maintain a separate regex implementation using GRegex (IMO these languages are dead enough not to justify the extra effort). The patch also disables tests for languages using regex parsers. * Rename roleDesc to roleDefinition See 1345725842c196cc0523ff60231192bcd588961b upstream. Since we don't care about roles in Geany, we don't have to do the additional stuff the upstream patch does. * Add XTAG_ANONYMOUS used by jscript See 0e4c5d4a0461bc8d9616fe3b97d75b91d014246e upstream. * Include stdint.h in entry.h * Don't use hash value as an Anonymous field identifier Instead of something like "Anonymous0ab283cd9402" use sequential integer values like "Anonymous1". * Call anonReset in main part See 3c91b1ea509df238feb86c9cbd552b621e462653 upstream. * Use upstream javascript parser * Use upstream css parser * Create correctly sized MIO for 0 size See https://github.com/universal-ctags/ctags/pull/1951 * Always enable promise API and subparsers for Geany * Support subparsers in Geany and add HTML parser demonstrating this feature This feature requires several changes: 1. Propagating language of the tag from ctags to Geany so we know whether the tag comes from a master parser or a subparser. 2. We need to address the problem that tag types from a subparsers can clash with tag types from master parsers or other subparsers used by the master parser. For instance, HTML and both its css and javascript subparsers use tm_tag_class_t but HTML uses it for <h2> headings, and css and javascript for classes. Representing all of them using tm_tag_class_t would lead to complete mess where all of these types would for instance be listed in the same branch of the tree in the sidebar. To avoid this problem, this patch adds another mapping for subparsers where each tag type can be mapped to another tag type (which isn't used neither by master parser or other subparsers). To avoid unwanted clashes with other parsers, only tags explicitly mentioned in such mappings are added to tag manager; other subparser tags are discarded. For HTML this patch introduces mapping only for tm_tag_function_t (which in this case maps to the same type) to mimick the previous HTML parser behavior but other javascript and css tag types can be added this way in the future too. 3. Since in most of the code Geany and tag manager assume that tags from one file use the same language, subparser's tags are modified to have the same language like the master parser. 4. HTML parser itself was copied from upstream without any modifications. Tests were fixed as the parser now correctly ignores comments. * Rename truncateLine field of tagEntryInfo See 0e70b22791877322598f03ecbe3eb26a6b661001 upstream. Needed for Fortran parser. * Add dummy mbcs.h and trace.h Included by javascript parser. * Introduce an accessor to `locate' field of `Option' See fb5ef68859f71ff2949f1d9a7cab7515f523532f upstream. Needed for Fortran. * Add numarray.c/h Needed by various parsers. * Add getLanguageForFilename() and getLanguageForCommand() See 416c5e6b8807feaec318d7f8addbb4107370c187 334e072f9d6d9954ebd3eb89bbceb252c20ae9dd upstream. Needed for Sh parser. * txt2tags: Fix scope separator definition and re-enable tests * Rename rest.c to rst.c to match upstream filename * Use upstream asciidoc and rst parsers * Add asciidoc and rst unit tests * Rename conf.c to iniconf.c to match upstream filename * Add tests of conf, diff, md parsers from universal ctags * Add more ctags unit tests This patch adds unit tests for: nsis, docbook, haskell, haxe, abaqus, vala, abc. The only missing unit tests are for GLSL and Ferite parsers which however share the implementation with the C parser and should be reasonably well covered by other C-like language tests. The tests were put together from various tutorials and help of the languages in order to cover the tags these parsers generate. No guarantee they'd compile with real parsers. * Rename latex.c to tex.c to match upstream filename * Rename entry points of parsers to match upstream names * Initialize trashbox * Add newline to the end of file
2019-04-05 19:14:30 -07:00
parsers/rst.c \
parsers/ruby.c \
parsers/rust.c \
parsers/sh.c \
parsers/sql.c \
parsers/tcl.c \
Sync ctags with upstream so that most parsers can be copied from uctags (#2018) * Use latest version of htable * Use latest version of mio * Use latest version of objpool * Use latest version of ptrarray * Use latest version of vstring This also requires adding trashbox.c/h which is now used by vstring and inline macros from inline.h. * Rename fieldSpec to fieldDefinition See b56bd065123d69087acd6f202499d71a86a7ea7a upstream. * Rename kindOption to kindDefinition See e112e8ab6e0933b5bd7922e0dfb969b1f28c60fa upstream * Rename kinds field in parserDefinition to kindTable See 09ae690face8b5cde940e2d7cf40f8860381067b upstream. * Rename structure fields about field in parserDefinition See a739fa5fb790bc349a66b2bee0bf42cf289994e8 upstream. * Use kindIndex instead of kindDefinition This patch replaces kindDefinition related entries from sTagEntryInfo with kindIndex so kinds are referenced indirectly using the index. For more info please refer to commits: 16a2541c0698bd8ee03c1be8172ef3191f6e695a f92e6bf2aeb21fd6b04756487f98d0eefa16d9ce Some other changes had to be made to make the sources compile (without bringing all the diffs from upstream). At some places, which aren't used by Geany, only stub implementations have been created. In particular, the regex parser has been disabled (for now?) because its current implementation doesn't allow accessing kindDefinitions using index and allowing this would require big changes in its implementation. The affected parsers are Cobol, ActionScript and HTML. For HTML we can use the token-based parser from upstream, and we should consider whether Cobol and ActionScript are worth the effort to maintain a separate regex implementation using GRegex (IMO these languages are dead enough not to justify the extra effort). The patch also disables tests for languages using regex parsers. * Rename roleDesc to roleDefinition See 1345725842c196cc0523ff60231192bcd588961b upstream. Since we don't care about roles in Geany, we don't have to do the additional stuff the upstream patch does. * Add XTAG_ANONYMOUS used by jscript See 0e4c5d4a0461bc8d9616fe3b97d75b91d014246e upstream. * Include stdint.h in entry.h * Don't use hash value as an Anonymous field identifier Instead of something like "Anonymous0ab283cd9402" use sequential integer values like "Anonymous1". * Call anonReset in main part See 3c91b1ea509df238feb86c9cbd552b621e462653 upstream. * Use upstream javascript parser * Use upstream css parser * Create correctly sized MIO for 0 size See https://github.com/universal-ctags/ctags/pull/1951 * Always enable promise API and subparsers for Geany * Support subparsers in Geany and add HTML parser demonstrating this feature This feature requires several changes: 1. Propagating language of the tag from ctags to Geany so we know whether the tag comes from a master parser or a subparser. 2. We need to address the problem that tag types from a subparsers can clash with tag types from master parsers or other subparsers used by the master parser. For instance, HTML and both its css and javascript subparsers use tm_tag_class_t but HTML uses it for <h2> headings, and css and javascript for classes. Representing all of them using tm_tag_class_t would lead to complete mess where all of these types would for instance be listed in the same branch of the tree in the sidebar. To avoid this problem, this patch adds another mapping for subparsers where each tag type can be mapped to another tag type (which isn't used neither by master parser or other subparsers). To avoid unwanted clashes with other parsers, only tags explicitly mentioned in such mappings are added to tag manager; other subparser tags are discarded. For HTML this patch introduces mapping only for tm_tag_function_t (which in this case maps to the same type) to mimick the previous HTML parser behavior but other javascript and css tag types can be added this way in the future too. 3. Since in most of the code Geany and tag manager assume that tags from one file use the same language, subparser's tags are modified to have the same language like the master parser. 4. HTML parser itself was copied from upstream without any modifications. Tests were fixed as the parser now correctly ignores comments. * Rename truncateLine field of tagEntryInfo See 0e70b22791877322598f03ecbe3eb26a6b661001 upstream. Needed for Fortran parser. * Add dummy mbcs.h and trace.h Included by javascript parser. * Introduce an accessor to `locate' field of `Option' See fb5ef68859f71ff2949f1d9a7cab7515f523532f upstream. Needed for Fortran. * Add numarray.c/h Needed by various parsers. * Add getLanguageForFilename() and getLanguageForCommand() See 416c5e6b8807feaec318d7f8addbb4107370c187 334e072f9d6d9954ebd3eb89bbceb252c20ae9dd upstream. Needed for Sh parser. * txt2tags: Fix scope separator definition and re-enable tests * Rename rest.c to rst.c to match upstream filename * Use upstream asciidoc and rst parsers * Add asciidoc and rst unit tests * Rename conf.c to iniconf.c to match upstream filename * Add tests of conf, diff, md parsers from universal ctags * Add more ctags unit tests This patch adds unit tests for: nsis, docbook, haskell, haxe, abaqus, vala, abc. The only missing unit tests are for GLSL and Ferite parsers which however share the implementation with the C parser and should be reasonably well covered by other C-like language tests. The tests were put together from various tutorials and help of the languages in order to cover the tags these parsers generate. No guarantee they'd compile with real parsers. * Rename latex.c to tex.c to match upstream filename * Rename entry points of parsers to match upstream names * Initialize trashbox * Add newline to the end of file
2019-04-05 19:14:30 -07:00
parsers/tex.c \
parsers/txt2tags.c \
parsers/verilog.c \
parsers/vhdl.c
libctags_la_SOURCES = \
main/args.c \
main/args.h \
main/ctags.h \
main/ctags-api.c \
main/ctags-api.h \
main/debug.h \
2016-10-06 14:28:24 -07:00
main/debug.c \
main/dependency.h \
main/dependency.c \
main/e_msoft.h \
main/entry.c \
main/entry.h \
main/error.c \
main/error.h \
main/field.c \
main/field.h \
main/flags.c \
main/flags.h \
main/fmt.c \
main/fmt.h \
main/gcc-attr.h \
main/general.h \
main/htable.c \
main/htable.h \
Sync ctags with upstream so that most parsers can be copied from uctags (#2018) * Use latest version of htable * Use latest version of mio * Use latest version of objpool * Use latest version of ptrarray * Use latest version of vstring This also requires adding trashbox.c/h which is now used by vstring and inline macros from inline.h. * Rename fieldSpec to fieldDefinition See b56bd065123d69087acd6f202499d71a86a7ea7a upstream. * Rename kindOption to kindDefinition See e112e8ab6e0933b5bd7922e0dfb969b1f28c60fa upstream * Rename kinds field in parserDefinition to kindTable See 09ae690face8b5cde940e2d7cf40f8860381067b upstream. * Rename structure fields about field in parserDefinition See a739fa5fb790bc349a66b2bee0bf42cf289994e8 upstream. * Use kindIndex instead of kindDefinition This patch replaces kindDefinition related entries from sTagEntryInfo with kindIndex so kinds are referenced indirectly using the index. For more info please refer to commits: 16a2541c0698bd8ee03c1be8172ef3191f6e695a f92e6bf2aeb21fd6b04756487f98d0eefa16d9ce Some other changes had to be made to make the sources compile (without bringing all the diffs from upstream). At some places, which aren't used by Geany, only stub implementations have been created. In particular, the regex parser has been disabled (for now?) because its current implementation doesn't allow accessing kindDefinitions using index and allowing this would require big changes in its implementation. The affected parsers are Cobol, ActionScript and HTML. For HTML we can use the token-based parser from upstream, and we should consider whether Cobol and ActionScript are worth the effort to maintain a separate regex implementation using GRegex (IMO these languages are dead enough not to justify the extra effort). The patch also disables tests for languages using regex parsers. * Rename roleDesc to roleDefinition See 1345725842c196cc0523ff60231192bcd588961b upstream. Since we don't care about roles in Geany, we don't have to do the additional stuff the upstream patch does. * Add XTAG_ANONYMOUS used by jscript See 0e4c5d4a0461bc8d9616fe3b97d75b91d014246e upstream. * Include stdint.h in entry.h * Don't use hash value as an Anonymous field identifier Instead of something like "Anonymous0ab283cd9402" use sequential integer values like "Anonymous1". * Call anonReset in main part See 3c91b1ea509df238feb86c9cbd552b621e462653 upstream. * Use upstream javascript parser * Use upstream css parser * Create correctly sized MIO for 0 size See https://github.com/universal-ctags/ctags/pull/1951 * Always enable promise API and subparsers for Geany * Support subparsers in Geany and add HTML parser demonstrating this feature This feature requires several changes: 1. Propagating language of the tag from ctags to Geany so we know whether the tag comes from a master parser or a subparser. 2. We need to address the problem that tag types from a subparsers can clash with tag types from master parsers or other subparsers used by the master parser. For instance, HTML and both its css and javascript subparsers use tm_tag_class_t but HTML uses it for <h2> headings, and css and javascript for classes. Representing all of them using tm_tag_class_t would lead to complete mess where all of these types would for instance be listed in the same branch of the tree in the sidebar. To avoid this problem, this patch adds another mapping for subparsers where each tag type can be mapped to another tag type (which isn't used neither by master parser or other subparsers). To avoid unwanted clashes with other parsers, only tags explicitly mentioned in such mappings are added to tag manager; other subparser tags are discarded. For HTML this patch introduces mapping only for tm_tag_function_t (which in this case maps to the same type) to mimick the previous HTML parser behavior but other javascript and css tag types can be added this way in the future too. 3. Since in most of the code Geany and tag manager assume that tags from one file use the same language, subparser's tags are modified to have the same language like the master parser. 4. HTML parser itself was copied from upstream without any modifications. Tests were fixed as the parser now correctly ignores comments. * Rename truncateLine field of tagEntryInfo See 0e70b22791877322598f03ecbe3eb26a6b661001 upstream. Needed for Fortran parser. * Add dummy mbcs.h and trace.h Included by javascript parser. * Introduce an accessor to `locate' field of `Option' See fb5ef68859f71ff2949f1d9a7cab7515f523532f upstream. Needed for Fortran. * Add numarray.c/h Needed by various parsers. * Add getLanguageForFilename() and getLanguageForCommand() See 416c5e6b8807feaec318d7f8addbb4107370c187 334e072f9d6d9954ebd3eb89bbceb252c20ae9dd upstream. Needed for Sh parser. * txt2tags: Fix scope separator definition and re-enable tests * Rename rest.c to rst.c to match upstream filename * Use upstream asciidoc and rst parsers * Add asciidoc and rst unit tests * Rename conf.c to iniconf.c to match upstream filename * Add tests of conf, diff, md parsers from universal ctags * Add more ctags unit tests This patch adds unit tests for: nsis, docbook, haskell, haxe, abaqus, vala, abc. The only missing unit tests are for GLSL and Ferite parsers which however share the implementation with the C parser and should be reasonably well covered by other C-like language tests. The tests were put together from various tutorials and help of the languages in order to cover the tags these parsers generate. No guarantee they'd compile with real parsers. * Rename latex.c to tex.c to match upstream filename * Rename entry points of parsers to match upstream names * Initialize trashbox * Add newline to the end of file
2019-04-05 19:14:30 -07:00
main/inline.h \
main/keyword.c \
main/keyword.h \
main/kind.c \
main/kind.h \
2016-07-31 12:00:58 -07:00
main/lcpp.c \
main/lcpp.h \
main/lregex.c \
main/lxcmd.c \
Grab uctags version of parse.c/h and nestlevel.c/h plus additional fallout At this point the only remaining files with big changes are parser.c/h and nestlevel.c/h. However, the amount of changes is big and these changes cannot be easily separated into individual small patches. Fortunately by looking at parse.c there doesn't seem to be anything really valuable in Geany's version and we can just simply take over the ctags one and only apply the necessary changes on top of that. nestlevel.c/h has to be synced at the same time as the changes are related to cork introduction which was done in both of them. A few points: createTagsWithFallback1() and createTagsWithFallback() have been modified so they don't do anything with the output tags file which we don't use. Because they contain all the reparsing logic we originally had in tm_ctags_parse(), this function got simplified and just calls createTagsWithFallback(). In Options EX_PATTERN has been changed to EX_LINENUM (there's some strange thing with EX_PATTERN in uctags as it always checks the previous line in the output tags file - and we don't have output tags file so it crashes). Lots of previously commented-out lines (because we didn't have all the functions from uctags at that point) could be uncommented. lxpath.c has been added. Parsers had to be adjusted to work with the updated nestlevel and cork. Changes in asciidoc and rest were based on the "rst.c" parser from uctags. txt2tags has been modified manually. The ruby changes wer taken directly from the uctags ruby parser and the python ones were based on the last commit before the introduction of the token-based parser. The parser now respects if kinds are enabled/disabled so prototypes and externvars had to be enabled in the c.c parser to get the same output. The parse2() function now returns rescanReason union instead of simple bool to indicate reparsing should happen - c.c and fortran have been changed accordingly. tm_ctags_init() has been changed to call all the initialization that happens in uctags except of output tag file initialization which we don't use. In addition it calls initializeParser (LANG_AUTO) This forces all parsers to get initialized. Without it parsers get initialized lazily as they are used but the problem is code like isInputLanguage (Lang_java) in c.c which just does ((lang) == getInputLanguage ()) works incorrectly because getInputLanguage () returns 0 for C and when uninitialized, Lang_java is also 0 and we have a problem. This problem isn't present in uctags because there the 0th parser is always CTagsSelfTestParser so this cannot happen.
2016-10-14 09:07:31 -07:00
main/lxpath.c \
main/main.c \
main/main.h \
Sync ctags with upstream so that most parsers can be copied from uctags (#2018) * Use latest version of htable * Use latest version of mio * Use latest version of objpool * Use latest version of ptrarray * Use latest version of vstring This also requires adding trashbox.c/h which is now used by vstring and inline macros from inline.h. * Rename fieldSpec to fieldDefinition See b56bd065123d69087acd6f202499d71a86a7ea7a upstream. * Rename kindOption to kindDefinition See e112e8ab6e0933b5bd7922e0dfb969b1f28c60fa upstream * Rename kinds field in parserDefinition to kindTable See 09ae690face8b5cde940e2d7cf40f8860381067b upstream. * Rename structure fields about field in parserDefinition See a739fa5fb790bc349a66b2bee0bf42cf289994e8 upstream. * Use kindIndex instead of kindDefinition This patch replaces kindDefinition related entries from sTagEntryInfo with kindIndex so kinds are referenced indirectly using the index. For more info please refer to commits: 16a2541c0698bd8ee03c1be8172ef3191f6e695a f92e6bf2aeb21fd6b04756487f98d0eefa16d9ce Some other changes had to be made to make the sources compile (without bringing all the diffs from upstream). At some places, which aren't used by Geany, only stub implementations have been created. In particular, the regex parser has been disabled (for now?) because its current implementation doesn't allow accessing kindDefinitions using index and allowing this would require big changes in its implementation. The affected parsers are Cobol, ActionScript and HTML. For HTML we can use the token-based parser from upstream, and we should consider whether Cobol and ActionScript are worth the effort to maintain a separate regex implementation using GRegex (IMO these languages are dead enough not to justify the extra effort). The patch also disables tests for languages using regex parsers. * Rename roleDesc to roleDefinition See 1345725842c196cc0523ff60231192bcd588961b upstream. Since we don't care about roles in Geany, we don't have to do the additional stuff the upstream patch does. * Add XTAG_ANONYMOUS used by jscript See 0e4c5d4a0461bc8d9616fe3b97d75b91d014246e upstream. * Include stdint.h in entry.h * Don't use hash value as an Anonymous field identifier Instead of something like "Anonymous0ab283cd9402" use sequential integer values like "Anonymous1". * Call anonReset in main part See 3c91b1ea509df238feb86c9cbd552b621e462653 upstream. * Use upstream javascript parser * Use upstream css parser * Create correctly sized MIO for 0 size See https://github.com/universal-ctags/ctags/pull/1951 * Always enable promise API and subparsers for Geany * Support subparsers in Geany and add HTML parser demonstrating this feature This feature requires several changes: 1. Propagating language of the tag from ctags to Geany so we know whether the tag comes from a master parser or a subparser. 2. We need to address the problem that tag types from a subparsers can clash with tag types from master parsers or other subparsers used by the master parser. For instance, HTML and both its css and javascript subparsers use tm_tag_class_t but HTML uses it for <h2> headings, and css and javascript for classes. Representing all of them using tm_tag_class_t would lead to complete mess where all of these types would for instance be listed in the same branch of the tree in the sidebar. To avoid this problem, this patch adds another mapping for subparsers where each tag type can be mapped to another tag type (which isn't used neither by master parser or other subparsers). To avoid unwanted clashes with other parsers, only tags explicitly mentioned in such mappings are added to tag manager; other subparser tags are discarded. For HTML this patch introduces mapping only for tm_tag_function_t (which in this case maps to the same type) to mimick the previous HTML parser behavior but other javascript and css tag types can be added this way in the future too. 3. Since in most of the code Geany and tag manager assume that tags from one file use the same language, subparser's tags are modified to have the same language like the master parser. 4. HTML parser itself was copied from upstream without any modifications. Tests were fixed as the parser now correctly ignores comments. * Rename truncateLine field of tagEntryInfo See 0e70b22791877322598f03ecbe3eb26a6b661001 upstream. Needed for Fortran parser. * Add dummy mbcs.h and trace.h Included by javascript parser. * Introduce an accessor to `locate' field of `Option' See fb5ef68859f71ff2949f1d9a7cab7515f523532f upstream. Needed for Fortran. * Add numarray.c/h Needed by various parsers. * Add getLanguageForFilename() and getLanguageForCommand() See 416c5e6b8807feaec318d7f8addbb4107370c187 334e072f9d6d9954ebd3eb89bbceb252c20ae9dd upstream. Needed for Sh parser. * txt2tags: Fix scope separator definition and re-enable tests * Rename rest.c to rst.c to match upstream filename * Use upstream asciidoc and rst parsers * Add asciidoc and rst unit tests * Rename conf.c to iniconf.c to match upstream filename * Add tests of conf, diff, md parsers from universal ctags * Add more ctags unit tests This patch adds unit tests for: nsis, docbook, haskell, haxe, abaqus, vala, abc. The only missing unit tests are for GLSL and Ferite parsers which however share the implementation with the C parser and should be reasonably well covered by other C-like language tests. The tests were put together from various tutorials and help of the languages in order to cover the tags these parsers generate. No guarantee they'd compile with real parsers. * Rename latex.c to tex.c to match upstream filename * Rename entry points of parsers to match upstream names * Initialize trashbox * Add newline to the end of file
2019-04-05 19:14:30 -07:00
main/mbcs.h \
main/mio.c \
main/mio.h \
main/nestlevel.c \
main/nestlevel.h \
Sync ctags with upstream so that most parsers can be copied from uctags (#2018) * Use latest version of htable * Use latest version of mio * Use latest version of objpool * Use latest version of ptrarray * Use latest version of vstring This also requires adding trashbox.c/h which is now used by vstring and inline macros from inline.h. * Rename fieldSpec to fieldDefinition See b56bd065123d69087acd6f202499d71a86a7ea7a upstream. * Rename kindOption to kindDefinition See e112e8ab6e0933b5bd7922e0dfb969b1f28c60fa upstream * Rename kinds field in parserDefinition to kindTable See 09ae690face8b5cde940e2d7cf40f8860381067b upstream. * Rename structure fields about field in parserDefinition See a739fa5fb790bc349a66b2bee0bf42cf289994e8 upstream. * Use kindIndex instead of kindDefinition This patch replaces kindDefinition related entries from sTagEntryInfo with kindIndex so kinds are referenced indirectly using the index. For more info please refer to commits: 16a2541c0698bd8ee03c1be8172ef3191f6e695a f92e6bf2aeb21fd6b04756487f98d0eefa16d9ce Some other changes had to be made to make the sources compile (without bringing all the diffs from upstream). At some places, which aren't used by Geany, only stub implementations have been created. In particular, the regex parser has been disabled (for now?) because its current implementation doesn't allow accessing kindDefinitions using index and allowing this would require big changes in its implementation. The affected parsers are Cobol, ActionScript and HTML. For HTML we can use the token-based parser from upstream, and we should consider whether Cobol and ActionScript are worth the effort to maintain a separate regex implementation using GRegex (IMO these languages are dead enough not to justify the extra effort). The patch also disables tests for languages using regex parsers. * Rename roleDesc to roleDefinition See 1345725842c196cc0523ff60231192bcd588961b upstream. Since we don't care about roles in Geany, we don't have to do the additional stuff the upstream patch does. * Add XTAG_ANONYMOUS used by jscript See 0e4c5d4a0461bc8d9616fe3b97d75b91d014246e upstream. * Include stdint.h in entry.h * Don't use hash value as an Anonymous field identifier Instead of something like "Anonymous0ab283cd9402" use sequential integer values like "Anonymous1". * Call anonReset in main part See 3c91b1ea509df238feb86c9cbd552b621e462653 upstream. * Use upstream javascript parser * Use upstream css parser * Create correctly sized MIO for 0 size See https://github.com/universal-ctags/ctags/pull/1951 * Always enable promise API and subparsers for Geany * Support subparsers in Geany and add HTML parser demonstrating this feature This feature requires several changes: 1. Propagating language of the tag from ctags to Geany so we know whether the tag comes from a master parser or a subparser. 2. We need to address the problem that tag types from a subparsers can clash with tag types from master parsers or other subparsers used by the master parser. For instance, HTML and both its css and javascript subparsers use tm_tag_class_t but HTML uses it for <h2> headings, and css and javascript for classes. Representing all of them using tm_tag_class_t would lead to complete mess where all of these types would for instance be listed in the same branch of the tree in the sidebar. To avoid this problem, this patch adds another mapping for subparsers where each tag type can be mapped to another tag type (which isn't used neither by master parser or other subparsers). To avoid unwanted clashes with other parsers, only tags explicitly mentioned in such mappings are added to tag manager; other subparser tags are discarded. For HTML this patch introduces mapping only for tm_tag_function_t (which in this case maps to the same type) to mimick the previous HTML parser behavior but other javascript and css tag types can be added this way in the future too. 3. Since in most of the code Geany and tag manager assume that tags from one file use the same language, subparser's tags are modified to have the same language like the master parser. 4. HTML parser itself was copied from upstream without any modifications. Tests were fixed as the parser now correctly ignores comments. * Rename truncateLine field of tagEntryInfo See 0e70b22791877322598f03ecbe3eb26a6b661001 upstream. Needed for Fortran parser. * Add dummy mbcs.h and trace.h Included by javascript parser. * Introduce an accessor to `locate' field of `Option' See fb5ef68859f71ff2949f1d9a7cab7515f523532f upstream. Needed for Fortran. * Add numarray.c/h Needed by various parsers. * Add getLanguageForFilename() and getLanguageForCommand() See 416c5e6b8807feaec318d7f8addbb4107370c187 334e072f9d6d9954ebd3eb89bbceb252c20ae9dd upstream. Needed for Sh parser. * txt2tags: Fix scope separator definition and re-enable tests * Rename rest.c to rst.c to match upstream filename * Use upstream asciidoc and rst parsers * Add asciidoc and rst unit tests * Rename conf.c to iniconf.c to match upstream filename * Add tests of conf, diff, md parsers from universal ctags * Add more ctags unit tests This patch adds unit tests for: nsis, docbook, haskell, haxe, abaqus, vala, abc. The only missing unit tests are for GLSL and Ferite parsers which however share the implementation with the C parser and should be reasonably well covered by other C-like language tests. The tests were put together from various tutorials and help of the languages in order to cover the tags these parsers generate. No guarantee they'd compile with real parsers. * Rename latex.c to tex.c to match upstream filename * Rename entry points of parsers to match upstream names * Initialize trashbox * Add newline to the end of file
2019-04-05 19:14:30 -07:00
main/numarray.c \
main/numarray.h \
main/objpool.c \
main/objpool.h \
main/options.c \
main/options.h \
main/output-ctags.c \
main/output.h \
main/parse.c \
main/parse.h \
main/parsers.h \
main/pcoproc.c \
main/pcoproc.h \
main/promise.c \
main/promise.h \
main/ptag.c \
main/ptag.h \
2016-10-06 06:41:19 -07:00
main/ptrarray.c \
main/ptrarray.h \
main/read.c \
main/read.h \
main/repoinfo.c \
main/repoinfo.h \
main/routines.c \
main/routines.h \
main/selectors.c \
main/selectors.h \
main/sort.c \
main/sort.h \
main/strlist.c \
main/strlist.h \
Sync ctags with upstream so that most parsers can be copied from uctags (#2018) * Use latest version of htable * Use latest version of mio * Use latest version of objpool * Use latest version of ptrarray * Use latest version of vstring This also requires adding trashbox.c/h which is now used by vstring and inline macros from inline.h. * Rename fieldSpec to fieldDefinition See b56bd065123d69087acd6f202499d71a86a7ea7a upstream. * Rename kindOption to kindDefinition See e112e8ab6e0933b5bd7922e0dfb969b1f28c60fa upstream * Rename kinds field in parserDefinition to kindTable See 09ae690face8b5cde940e2d7cf40f8860381067b upstream. * Rename structure fields about field in parserDefinition See a739fa5fb790bc349a66b2bee0bf42cf289994e8 upstream. * Use kindIndex instead of kindDefinition This patch replaces kindDefinition related entries from sTagEntryInfo with kindIndex so kinds are referenced indirectly using the index. For more info please refer to commits: 16a2541c0698bd8ee03c1be8172ef3191f6e695a f92e6bf2aeb21fd6b04756487f98d0eefa16d9ce Some other changes had to be made to make the sources compile (without bringing all the diffs from upstream). At some places, which aren't used by Geany, only stub implementations have been created. In particular, the regex parser has been disabled (for now?) because its current implementation doesn't allow accessing kindDefinitions using index and allowing this would require big changes in its implementation. The affected parsers are Cobol, ActionScript and HTML. For HTML we can use the token-based parser from upstream, and we should consider whether Cobol and ActionScript are worth the effort to maintain a separate regex implementation using GRegex (IMO these languages are dead enough not to justify the extra effort). The patch also disables tests for languages using regex parsers. * Rename roleDesc to roleDefinition See 1345725842c196cc0523ff60231192bcd588961b upstream. Since we don't care about roles in Geany, we don't have to do the additional stuff the upstream patch does. * Add XTAG_ANONYMOUS used by jscript See 0e4c5d4a0461bc8d9616fe3b97d75b91d014246e upstream. * Include stdint.h in entry.h * Don't use hash value as an Anonymous field identifier Instead of something like "Anonymous0ab283cd9402" use sequential integer values like "Anonymous1". * Call anonReset in main part See 3c91b1ea509df238feb86c9cbd552b621e462653 upstream. * Use upstream javascript parser * Use upstream css parser * Create correctly sized MIO for 0 size See https://github.com/universal-ctags/ctags/pull/1951 * Always enable promise API and subparsers for Geany * Support subparsers in Geany and add HTML parser demonstrating this feature This feature requires several changes: 1. Propagating language of the tag from ctags to Geany so we know whether the tag comes from a master parser or a subparser. 2. We need to address the problem that tag types from a subparsers can clash with tag types from master parsers or other subparsers used by the master parser. For instance, HTML and both its css and javascript subparsers use tm_tag_class_t but HTML uses it for <h2> headings, and css and javascript for classes. Representing all of them using tm_tag_class_t would lead to complete mess where all of these types would for instance be listed in the same branch of the tree in the sidebar. To avoid this problem, this patch adds another mapping for subparsers where each tag type can be mapped to another tag type (which isn't used neither by master parser or other subparsers). To avoid unwanted clashes with other parsers, only tags explicitly mentioned in such mappings are added to tag manager; other subparser tags are discarded. For HTML this patch introduces mapping only for tm_tag_function_t (which in this case maps to the same type) to mimick the previous HTML parser behavior but other javascript and css tag types can be added this way in the future too. 3. Since in most of the code Geany and tag manager assume that tags from one file use the same language, subparser's tags are modified to have the same language like the master parser. 4. HTML parser itself was copied from upstream without any modifications. Tests were fixed as the parser now correctly ignores comments. * Rename truncateLine field of tagEntryInfo See 0e70b22791877322598f03ecbe3eb26a6b661001 upstream. Needed for Fortran parser. * Add dummy mbcs.h and trace.h Included by javascript parser. * Introduce an accessor to `locate' field of `Option' See fb5ef68859f71ff2949f1d9a7cab7515f523532f upstream. Needed for Fortran. * Add numarray.c/h Needed by various parsers. * Add getLanguageForFilename() and getLanguageForCommand() See 416c5e6b8807feaec318d7f8addbb4107370c187 334e072f9d6d9954ebd3eb89bbceb252c20ae9dd upstream. Needed for Sh parser. * txt2tags: Fix scope separator definition and re-enable tests * Rename rest.c to rst.c to match upstream filename * Use upstream asciidoc and rst parsers * Add asciidoc and rst unit tests * Rename conf.c to iniconf.c to match upstream filename * Add tests of conf, diff, md parsers from universal ctags * Add more ctags unit tests This patch adds unit tests for: nsis, docbook, haskell, haxe, abaqus, vala, abc. The only missing unit tests are for GLSL and Ferite parsers which however share the implementation with the C parser and should be reasonably well covered by other C-like language tests. The tests were put together from various tutorials and help of the languages in order to cover the tags these parsers generate. No guarantee they'd compile with real parsers. * Rename latex.c to tex.c to match upstream filename * Rename entry points of parsers to match upstream names * Initialize trashbox * Add newline to the end of file
2019-04-05 19:14:30 -07:00
main/trace.h \
main/trashbox.c \
main/trashbox.h \
main/types.h \
main/vstring.c \
main/vstring.h \
main/xtag.h \
main/xtag.c \
$(parsers)