Changes in 6.2.0¶
This page lists only the most significant changes as remembered. Use git-log to review changes not enumerated here, especially in language parsers.
New and extended options and their flags¶
--list-output-formats
option¶
See Listing Options in ctags(1).
nulltag
/z
extra¶
Universal Ctags now supports tags (null tags) having empty strings as their names. See Extras in ctags(1).
Note
libreadtags
andreadtags
do not support the null tags yet.Only
json
andxref
output formats support the null tags.
Incompatible changes¶
[readtags] make -Q,--filter not work on ptags when -P,--with-pseudo-tags is specified together
With this version,
-Q,--filter
option doesn’t affect the pseudo tags listed with-P,--with-pseudo-tags
option.-Q,--filter
option specified wth-P,--with-pseudo-tags
option affect only regular tags.To extract speicifed pseudo tags, use
-Q,--filter
option with-D,--list-pseudo
action.
Merged pull requests¶
Note
This list is imperfect. masatake cleaned up some pull requests before merging. Though his names is used in “… by …”, his is not the primary contributor of the pull requests. See git log for more defatils.
SystemVerilog,Verilog: accept empty names for any kind of language objects by masatake · Pull Request #4257
Units(JSON): add a test case for extracting null tags by masatake · Pull Request #4256
Misc fix by masatake · Pull Request #4258
build(deps): bump cross-platform-actions/action from 0.27.0 to 0.28.0 by dependabot[bot] · Pull Request #4250
Kconfig: don’t leave without any items on the stack by masatake · Pull Request #4255
TypeSpec: new parser by iaalm · Pull Request #4243
JNI: new subparser by masatake · Pull Request #4252
operator: add a getter for the language field by masatake · Pull Request #4251
Tests for more Clojure tags by aartaka · Pull Request #4126
optlib: allow users to set fields and check extras defined in a foreign language by masatake · Pull Request #3960
TOML,Cargo: disable the parsers temporarily by masatake · Pull Request #4248
Scdoc: new parser by masatake · Pull Request #4244
Some minor fixes by masatake · Pull Request #4245
circleci: switch to use Fedoa42 by masatake · Pull Request #4246
GitHub Actions: set timeout to tests on Qemu by masatake · Pull Request #4247
main/read: revise the offset calculation on nested input stream by masatake · Pull Request #4212
Fix wrong parser versions by masatake · Pull Request #4242
Miscellaneous minor fixes by masatake · Pull Request #4241
SQL: fill signature and typeref fields for functions and procedures by masatake · Pull Request #4238
V: don’t use multi-bytes chars in debug print by masatake · Pull Request #4236
CPreProcessor: (bugfix) don’t return negative value other than EOF from unget-buffer by masatake · Pull Request #4234
RpmSpec: don’t make a FQ tag for sub-packages if -n option is specified on %package line by masatake · Pull Request #4233
main: (bugfix) don’t reset lineFposMap even in the 2nd pass when the parser runs as a guest by masatake · Pull Request #4231
main: fix typos in a parameter name by masatake · Pull Request #4230
SQL: extract trigger of Postgresql dialect by masatake · Pull Request #4229
JavaScript: (bugfix) consider << operator when detecting JSX area by masatake · Pull Request #4228
CPreProcessor,LdScript,Asm: (bugfix) don’t expand macros defined with -I by masatake · Pull Request #4226
main/read: refactor step1 by masatake · Pull Request #4223
C++: skip broken C++11 attributes by masatake · Pull Request #4221
PythonEntryPoints: new subparser based on Iniconf parser by masatake · Pull Request #4219
lregex: avoid crashes when regex pattern compilation fails by masatake · Pull Request #4220
Moose: stop parsing when the base parser stops parsing by masatake · Pull Request #4218
units,tmain: add a variable to control the number of threads running test cases by masatake · Pull Request #4215
Ada: print debug messages only if --_trace=Ada is given by masatake · Pull Request #4213
main: various minor improvements, especially about mio by masatake · Pull Request #4214
readtags: revise feature listing ptags (including an incompatible change) by masatake · Pull Request #4095
GitHub Actions: install pkg-config to the msys2 environment by masatake · Pull Request #4211
Ada: accept ‘end;’ as the end of function by masatake · Pull Request #4206
Circleci: (fedora41) update libsqlite.so explicitly by masatake · Pull Request #4209
buildsys: (msvc) avoid “multiply defined symbols” errors by masatake · Pull Request #4208
JavaScript,HTML: skip JSX elements by masatake · Pull Request #4191
CPreProcessor: adjust line numbers when reading characters from unget-chars-buffer by masatake · Pull Request #4198
JavaScript: don’t extract local constants and variables defined in arrow functions by masatake · Pull Request #4197
Asm: support Cpp macro arguments spanning multiple lines by masatake · Pull Request #4201
JavaScript: Fix held tokens breaking implicit semicolon insertion by b4n · Pull Request #4193
Ruby minor improvements by masatake · Pull Request #4190
Units(Meson): add a case testing extracting config variables by masatake · Pull Request #4189
Meson: extract config variables by masatake · Pull Request #4186
CUDA: support function parameters with default values by masatake · Pull Request #4188
build(deps): bump cross-platform-actions/action from 0.25.0 to 0.27.0 by dependabot[bot] · Pull Request #4183
CPreProcessor: support variadic macros with GNU cpp extension syntax by masatake · Pull Request #4184
SELinuxTypeEnforcement: fill typeref: field for alias kind objects by masatake · Pull Request #4180
optlib2c: make the error message more specific when a wrong datatype is given by masatake · Pull Request #4179
main: provide the way to specify data taype in --_fielddef option by masatake · Pull Request #4178
main: support integer field in the writers by masatake · Pull Request #4177
Kotlin: fix annotation parsing by dolik-rce · Pull Request #4176
main: FIX the way to print boolean typed parser specific fields correctly in {xref,ctags} output by masatake · Pull Request #4174
Lisp: introduce version 0.0 of lisp meta parser by masatake · Pull Request #4130
Parsers for files defining SELinux policy by masatake · Pull Request #4173
various minor fixes by masatake · Pull Request #4172
optscropt: fix _scopedepth operator by masatake · Pull Request #4170
SCSS: support modules specified with single-quote chars like @use ‘foo’ by masatake · Pull Request #4169
SCSS: extract modules and namespaces from @use “…” by masatake · Pull Request #4168
Tcl: extract null tags by masatake · Pull Request #4167
JavaScript: destructuring binding by masatake · Pull Request #3435
JSON: emit full qualified tags by masatake · Pull Request #4165
main: add nulltag/z, a new extra by masatake · Pull Request #4152
ObjectiveC: (bugfix) extract the line numbers for methods correctly by masatake · Pull Request #4162
(System)Verilog: escaped identifiers (LRM 5.6.1) by cousteaulecommandant · Pull Request #4129
PowerShell: recognize herestrings by masatake · Pull Request #4145
Introducing Universal Ctags Guru on Gurubase.io by kursataktas · Pull Request #4124
delete an accidentally commited file by masatake · Pull Request #4143
Revise the files for CI (ubi8, fedora, stream10) by masatake · Pull Request #4131
units.py: Fix format-NlKkFnP on Windows by k-takata · Pull Request #4137
verilog: support ifdef in enum by hirooih · Pull Request #4140
verilog: do not add scope to define (#4127) by hirooih · Pull Request #4139
Lisp: add def{struct,type,method,class,generic,parameter} kinds and definer field by masatake · Pull Request #4121
Verilog: Add final_specifier support for class parse by roccomao · Pull Request #4116
Verilog: Fix function parse when return type contains :: by roccomao · Pull Request #4111
Verilog: Skip the escaped characters in string by roccomao · Pull Request #4115
verilog.c: keyword “unsigned1” should be “unsigned”, without the 1 by cousteaulecommandant · Pull Request #4110
units.py: pass `count’ as a keyword argument by masatake · Pull Request #4112
iniconf: some more adjustments for parsing TOML by techee · Pull Request #4099
treewide: delete more unwated files by masatake · Pull Request #4108
Remove unwanted files by k-takata · Pull Request #4107
readtags: add tr operator by masatake · Pull Request #4106
Meson: handle backshash chars in strings and == operator correctly by masatake · Pull Request #4104
Meson: extract benchmark langage objects correctly by masatake · Pull Request #4101
readtags: refactoring for support multiple tag files by masatake · Pull Request #4079
Rust: don’t put EOF to a vString by masatake · Pull Request #4093
GPerf: skip comment lines started from ‘#’ by masatake · Pull Request #4092
main: error with more friendly and understandable message when “tags” directory exists by masatake · Pull Request #4085
Suppress warnings by masatake · Pull Request #4086
JavaScript: (bug fix) don’t append EOF token to a repr by masatake · Pull Request #4087
Make: don’t track EOF as a part of value by masatake · Pull Request #4088
Update libreadtags by masatake · Pull Request #4080
SystemTap: fill the typeref field for functions by masatake · Pull Request #4084
build-sys: eliminate READTAGS_DSL condition by masatake · Pull Request #4078
readtags: refactor for searching multiple tag files by masatake · Pull Request #4074
GemSpec: parse %q string by masatake · Pull Request #4077
Tmain: run Tmain/readtags-canonicalize-input-names.d only if DSL is enabled in readtags by masatake · Pull Request #4072
readtags: minor fixes by masatake · Pull Request #4071
Fix build for Haiku by Begasus · Pull Request #4069
dsl: fix the function for hashing integer object by masatake · Pull Request #4067
Optscript: fix bugs in foreigntag proc by masatake · Pull Request #4064
Main: use extras and fields in the foreign language specified in {_language=…} flag by masatake · Pull Request #4059
verilog: skip compiler directives in enum definition (#4056) by hirooih · Pull Request #4058
Kconfig: fill names of anonymous choices with the values of their prompts by masatake · Pull Request #4057
Cargo: new subparser based on TOML parser by masatake · Pull Request #4048
iniconf: Allow dot and dash for ini keys by techee · Pull Request #4052
Kconfig: avoid stack underflow when filling typeref filed by masatake · Pull Request #4051
Kconfig: fill typeref: field by masatake · Pull Request #4050
main: make the implementation of --list-languages=_CATEGORY efficient by masatake · Pull Request #4047
main: extend --list-languages option to list only parsers using packcc by masatake · Pull Request #4046
TOML: new PEG based parser by masatake · Pull Request #3509
Fix quotes & option syntax in manpage by JaSpa · Pull Request #4045
build-sys,mvc: generate rules for running packcc from source.mak by masatake · Pull Request #4036
Fortran: accept $ as parts of names by masatake · Pull Request #4034
Make: add CppDef extra for extracting FOO in -DFOO as a macro of CPreProcessor by masatake · Pull Request #4024
Make: refactor and add comments by masatake · Pull Request #4031
build-sys: utilize pegof by masatake · Pull Request #4026
Make: minor changes by masatake · Pull Request #4028
Circleci: update images by masatake · Pull Request #4029
Make: parse inside define/endef by masatake · Pull Request #4025
Haskell: skip multi-line type signature by masatake · Pull Request #4019
readtags: mark <or> as a special form by masatake · Pull Request #4022
main: fix a typo in an error message by masatake · Pull Request #4014
main: report errors when calling ftell(3) fails by masatake · Pull Request #4012
Cxx: fix file field for exported objects by masatake · Pull Request #4010
jscript: Fix representation of held tokens by b4n · Pull Request #4008
php: Skip class and trait use not to confuse typerefs by b4n · Pull Request #4009
C++: record “export” in the property field if the keyword is put at a “using” declaration by masatake · Pull Request #4006
powershell: Parse enum labels by b4n · Pull Request #3998
matlab: A couple fixes for corner cases by b4n · Pull Request #3999
Pascal: support for inline or one line comments added by masatake · Pull Request #3997
JavaScript: Improve support for contextual keywords as identifiers by b4n · Pull Request #3993
vera: Explicit fallthrough by b4n · Pull Request #3992
docs,man: Fix typos by k-takata · Pull Request #3987
dsl: allow to specify a default value in $ and & operators by masatake · Pull Request #3984
CI: use codecov/codecov-action by k-takata · Pull Request #3986
Update packcc by masatake · Pull Request #3983
C++: extract operators specified in using declarations by masatake · Pull Request #3982
main: don’t allocate a buffer for tagEntryInfoX::sourceFileName if possible by masatake · Pull Request #3980
build-sys: make lto optional by iLeeWell · Pull Request #3978
build-sys: fix checking Windows platform with _WIN32 macro by Biswa96 · Pull Request #3977
configure.ac: fix result message grammar by glibg10b · Pull Request #3976
Automake: add “makefile-automake”, the name of an emacs mode, as an alias by masatake · Pull Request #3975
optscript: add _anongen operator by masatake · Pull Request #3973
C++: recognize definitions of variable templates by masatake · Pull Request #3966
Asm: relax the condition for accepting characters within a section name by masatake · Pull Request #3964
optscript: make the help messages for @[0-9] and [0-9]@ operators easier to understand by masatake · Pull Request #3965
FrontMatter: fix the crash for an empty input by masatake · Pull Request #3961
add support for loongarch by wuruilong01 · Pull Request #3958
main: reset file-position map when input stream is reset by masatake · Pull Request #3953
Vim: extract classes by masatake · Pull Request #3951
main: fix typos in a variable name by masatake · Pull Request #3957
JavaScript: skip static blocks by masatake · Pull Request #3949
C++ : support C++20 modules by masatake · Pull Request #3941
Terraform: fix two known bugs by ponchoalv · Pull Request #3945
C,C++: fix properties field for object defined or declared with structure definitions by masatake · Pull Request #3944
LEX: make reference tags for the conditions used for making groups by masatake · Pull Request #3939
Docs(web): wrtite about foreign tags by masatake · Pull Request #3934
main: count the added tags after emitting parser-specific ptags by masatake · Pull Request #3936
Make: fix wrong end fields for targets having macros on the same line by masatake · Pull Request #3931
Vim: support vim9script by masatake · Pull Request #3930
docs(man),man-test: require “yaml” feature in the man-test of I18nRubyGem by masatake · Pull Request #3929
Vim: skip heredoc regions by masatake · Pull Request #3925
Fix typo by pepsiman · Pull Request #3926
build-sys: enable LTO by masatake · Pull Request #3922
build(deps): bump actions/cache from 3 to 4 by dependabot[bot] · Pull Request #3923
I18nRubyGem: trim leading colon inside of tag name by masatake · Pull Request #3921
Rake: extract m in “task (:m)” as a task by masatake · Pull Request #3919
Markdown,FrontMatter,YamlFrontMatter: recognize “…” as the end of YAML documents by masatake · Pull Request #3918
Ruby: optimize the parser by reducing the numbers of calling strlen by masatake · Pull Request #3916
Python: extract n in “n = SimpleNamespace(” as namespace/I kind by masatake · Pull Request #3917
Ruby: extract m in “define_method(:m” as a method by masatake · Pull Request #3908
Sh,Zsh: handle options for alias and function built-in commands by masatake · Pull Request #3909
docs(web): add the news entry for 6.1.0 by masatake · Pull Request #3910
GitHub Actions: add CODECOV_TOKEN to env by masatake · Pull Request #3911
Ruby: extract m in “m = Module.new()” as a tag with module kind by masatake · Pull Request #3907
Post-release administrivia by masatake · Pull Request #3904
Issues close or partially closed via above pull requests¶
TOML: reporting wrong patterns when the parser runs as a sub parser · Issue #4114
Just another crash · Issue #4181
Java: crash with a multi-byte character · Issue #4222
JavaScript: Segfault on jQuery v1.11.0 · Issue #4227
ctags crashes with memory access violation while tagging Linux source code · Issue #4225
C++: bug in code detecting attributes · Issue #4089
Perl: Segfault on Throwable::Error · Issue #4217
CPreprocessor,C: macro expands multiple lines · Issue #4018
JavaScript: extract local vars unexpectedly · Issue #4194
Issues in CUDA parsing · Issue #4187
JavaScript: destructural binding · Issue #1112
JSON full attributes path · Issue #4164
Support Null Tag · Issue #4151
Objective-C method linenumber is the first block (not the function name like in C) · Issue #4161
Powershell: (bug) herestr breaks ctags functions list. · Issue #4141
parsers/args.ctags was also committed accidentally. · Issue #4135
Unwanted files accidentally committed · Issue #4098
meson: use benchmark() instead of bench_mark() · Issue #4100
“ctags: Failure on attempt to read file : Is a directory” · Issue #4081
Fortran: How to include “$” in variable and function names · Issue #4033
Haskell: reference to too generic part of the type signature emitted when tagging Haskell source with multi-line type signature · Issue #4013
C++ modules: “export” declaration wrongly marked as file-local (static) · Issue #4003
tagging pascal language does not recognize one-line-comments ‘//’ · Issue #3988
C++: null tag for the code specfying operator in unsing statement · Issue #3981
Support XDG specification on Windows · Issue #3969
C++: crash when a variable template is given · Issue #3963
C++: variable template · Issue #3962
JavaScript static initialization blocks break the tagging of the rest of the class · Issue #3948
C++: disappearing pseudo tags · Issue #3935
ctags-lang-i18nrubygem test fails without yaml support · Issue #3928
Enabling LTO (Was: p5.9.20210221.0: build fails) · Issue #2885
I18nRubyGem leading colon inside of tag name · Issue #3920
Python: extract SimpleNamespace · Issue #3912