Skip to content

Releases: universal-ctags/ctags

Universal Ctags 6.2.0

01 Jun 05:50
Compare
Choose a tag to compare

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 :ref:option_listing in :ref:ctags(1) <ctags(1)>.

nulltag/z extra

Universal Ctags now supports tags (null tags) having empty strings as their names.
See :ref:extras in :ref:ctags(1) <ctags(1)>.

NOTE:

  • libreadtags and readtags do not support the null tags yet.
  • Only json and xref 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.

Parser related changes

#4026
Integrate pegof <https://github.com/dolik-rce/pegof>_ to our build process.

New parsers

The following parsers have been added:

  • SELinuxIntefae M4 based subparser

  • SELinuxTypeEnforcement optlib

  • PythonEntryPoints subparser

  • Scdoc optlib

  • JNI subparser

  • TypeSpec parser

    • TypeSpec by Kaisheng Xu Β· Pull Request #4243

NOTE: We added a TOML as a new parser in this version. However,
after adding it, we learned its implementation didn't work
entirely. So we deleted the TOML parser, and Cargo subparser
runs on the TOML parser from this "New parsers" list.
See TOML: infinite loop <https://github.com/universal-ctags/ctags/issues/4096>__
about how it doesn't work.

Changes about parser specific kinds, roles, fields, and extras

  • C++

    • New kinds module and partition
    • New roles imported and exported for header kind
  • Clojure

    • New kind unknown
    • New field definer
  • EmacsLisp

    • New field definer
  • LEX

    • New role grouping for cond kind
  • Lisp

    • New kinds class, generic, method, parameter, struct, and type
  • Make

    • New extra CppDef
  • Meson

    • New kinds cfgdata and cfgvar
  • PowerShell

    • New kind enumlabel
  • Python

    • New role entryPoint for module and function kinds

      PythonEntryPoints parser emits tag entries having this role.

  • Scheme

    • New kind unknown
    • New field definer
  • SCSS

    • New kind module
    • New role used for the module kind
    • New kind namespace
    • New field module
  • SQL

    • New kind local
  • Vim

    • New kind heredoc
    • New kind class

Readtags

  • make formatter work with -D,--list-pseudo-tags option

    An example extracting the value of !_TAG_PROC_CWD:

	 $ ./readtags -t podman.tags -Q '(#/.*CWD.*/ $name)' -F '(list $input #t)' -D
	 /home/yamato/var/ctags-github/
  • make -Q,--filter not work on ptags when -P,--with-pseudo-tags is specified together

What's Changed

Read more

Universal Ctags 6.1.0

28 Dec 15:52
Compare
Choose a tag to compare

What's Changed

  • HTML: introduce a specialized tokenizer for script areas by @masatake in #3598
  • C++,C: record consteval, constinit, thread_local, and __thread to properties: field by @masatake in #3602
  • C: add _Thread_local C11 keyword by @masatake in #3603
  • GitHub Actions: use python 3.10 instead of 3.11 on MacOS by @masatake in #3606
  • Systemtap: add new role "attached" for "probe" kind , and run CPreProcessor as a guest parser by @masatake in #3607
  • GitHub Actions: fix testing-mac.yml Homebrew upgrade python@3.10 and python@3.11 failed problem by @leleliu008 in #3610
  • Org: optimize by @masatake in #3611
  • Perl: skip string literals when collecting heredoc markers by @masatake in #3592
  • main: introduce --_paramdef-=, option by @masatake in #3613
  • readtags: unescape input field (a.k.a {tagfile}) only if TAG_OUTPUT_MODE is u-ctags and TAG_OUTPUT_FILESEP is slash by @masatake in #3599
  • build-sys(win32): unify MVC_INC_DIRS1 and MVC_INC_DIRS2 by @masatake in #3616
  • Various preparations by @masatake in #3617
  • misc/review,refactor: generalize functions related to show differences in Uints by @masatake in #3618
  • Cxx: support typeof and typeof keywords of the gcc extension by @masatake in #3621
  • C++,ObjectiveC,C,main: fix the broken selector for .h by @masatake in #3622
  • Markdown: fix the condition to detect code blocks by @masatake in #3626
  • C,Asm,LdScript: minor fixes by @masatake in #3623
  • CPreProcessor: don't include the newline after a backslash in string or char literals by @masatake in #3629
  • Ldscript: improve tagging versions in VERSION commands by @masatake in #3631
  • Kconfig: support the macro language by @masatake in #3632
  • Ruby: handle curly bracket by @masatake in #3633
  • GitHubActions: fix testing-openbsd.yml automake version broken issue by @leleliu008 in #3640
  • Tcl: don't include '"' char as a part of identifiers by @masatake in #3639
  • Fix typo in conditional in C++ parser by @al42and in #3646
  • update README.md to include information about prebuild binaries for unix-like systems. by @leleliu008 in #3651
  • Verilog: all text macro map to new kindDefinition:define by @my2817 in #3653
  • doc: Verilog, add new kind "define" by @my2817 in #3655
  • GitHub Actions: change github actions checkout from v2 to v3 by @leleliu008 in #3657
  • Typescript: Fix handling of parentheses in class property value by @b4n in #3659
  • cosmetic: gitignore *.swp by @iaalm in #3662
  • Powershell: fix string escape issue by @iaalm in #3661
  • main,cosmetic: fix misspelling by @jafl in #3667
  • main: add quick path for looking up too long strings in the keyword table by @techee in #3664
  • Cxx: scan the cork queue instead of the symtab to fill nth fields by @masatake in #3642
  • Fortran: add "linkName" extra by @masatake in #3671
  • misc/review: add "accept" command to the Tmain inspector by @masatake in #3672
  • SQL: Skip PL/SQL selection directives and add sanity check for inquiry directive size by @techee in #3654
  • docs(web): add ctags-lang-kconfig.7.rst by @masatake in #3673
  • SQL: handle "DATABASE" and "SCHEMA" keywords specially only when they come after "CREATE" by @masatake in #3674
  • Ruby: skip if DATA is found by @masatake in #3676
  • Misc fix by @masatake in #3679
  • Quarto: new parser by @masatake in #3677
  • Misc fix by @masatake in #3681
  • main: Don't strdup the inputFileName when storing a tag to the corkQueue by @masatake in #3682
  • Terraform: new parser by @masatake in #3684
  • Misc fix by @masatake in #3685
  • Optscript: add _foreignreftag operator by @masatake in #3686
  • main,refactor: delete 'inCorkQueue' parameter from attachParserField() by @masatake in #3687
  • AutoIt: Slightly optimize parsing #region by @b4n in #3689
  • Misc fix by @masatake in #3691
  • main: revise bit fields in tagEntryInfo by @masatake in #3695
  • C++: accept prototypes starting from :: operator by @masatake in #3694
  • autoit: Drop $ from variable names by @techee in #3697
  • main: add missing const modifiers by @masatake in #3699
  • Circleci: add fedora 38 by @masatake in #3705
  • D: parse user-defined attributes by @ntrel in #3701
  • C-based parsers,style: adjust placements of "{" after if by @masatake in #3706
  • readtags: canonicalize the input file name based on CWD ptag by @masatake in #3304
  • D: parse const(T), immutable, inout and shared type qualifiers by @ntrel in #3709
  • D: parse contract expressions by @ntrel in #3708
  • D: remove overload, not a keyword by @ntrel in #3710
  • D: set template members parent name by @ntrel in #3707
  • Misc fix by @masatake in #3713
  • D: fix parsing parameter with pointer by @ntrel in #3715
  • D: parse template instance types by @ntrel in #3716
  • docs(web): sphinx minor fixes by @masatake in #3719
  • Fortran: fix wrongly specified xtag type by @masatake in #3718
  • GDScript : mark xtag bit for implicitClass xtags by @masatake in #3717
  • Suppress warning by @masatake in #3714
  • units.py: don't use color if NO_COLOR is specified by @masatake in #3721
  • Verilog: support virtual interface variables by @hirooih in #3720
  • readtags: fix a bug compiling a formatter wrongly if giving --formatter long option by @masatake in #3723
  • verilog: treat a text-macro as an identifier by @hirooih in #3722
  • Misc fix by @masatake in #3724
  • colprint: Fix column width truncation by @b4n in #3725
  • erlang: Fix crash parsing directives longer than 31 characters by @b4n in #3726
  • Misc fix by @masatake in #3731
  • lregex: optimize substitute() by @masatake in #3728
  • vstring: Avoid int -> char truncation warnings by @b4n in #3690
  • Fix many calls to ctype functions by @b4n in #3734
  • libreadtags: pull the latest version by @masatake in #3735
  • Refactor function in Perl 6 parser for readability by @dtikhonov in #3738
  • htable: use precalculated list of primes by @dtikhonov in #3739
  • main,refactor: move field null string literals to header. by @dtikhonov in #3740
  • LdScript: support SORT keyword by @masatake in #3743
  • Various minor fixes by @masatake in #3742
  • parsers,perl: allow tokens following...
Read more

Universal Ctags 6.0.0

15 Dec 18:01
3af4135
Compare
Choose a tag to compare

New Contributors (Generated by Git Hub)

Full Changelog: https://github.com/universal-ctags/ctags/commits/v6.0.0