# Changes in 6.1.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

### `--regex-<LANG>` option

- `{postrun}` and `{intervaltab}` flags are added. See ctags-optlib(7).

## Incompatible changes

- section kind is deleted from Asm parser.

## Parser related changes

### New parsers

The following parsers have been added:

- BibLaTeX BibTeX based subparser by masatake · Pull Request #3822

- Forth optlib by farvardin · Pull Request #3812

- Quarto: new parser by masatake · Pull Request #3677

  - Quarto by Anish Shah · Pull Request #3643

- V: new parser by Tim Marston · Pull Request #3871, #3870

- Terraform: new parser by masatake · Pull Request #3684

  - Terraform (HCL) (*.tf): new parser by Matt Mrowiec · Pull Request #3683

  - Terraform (HCL) (*.tf): new parser by Antony Southworth · Pull Request #2952

- TerraformVariables optlib by masatake · Pull Request #3684

- PkgConfig optlib: new parser · Pull Request #3891

- I18nRubyGem YAML based subparser · Close #3533

- XRC libxml: new parser · Pull Request #3897

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

- Asm

  - section kind is deleted.

- AutoIt

  - Drop $ from tags for variables names.

- Automake

  - New extra canonicalizedName

  - New kind pseudodir

- C

  - New role foreigndecl for function kind

  - New role foreigndecl for struct kind

  - New filed section

  - New field alias

- C++

  - New filed section

  - New field alias

- CUDA

  - New field section

  - New field alias

- Fortran

  - New extra linkName.

- JavaScript

  - New role foreigndecl for function kind

- Kconfig

  - New kind variable

- LdScript

  - New role destination for inputSection kind

  - New role aliased for symbol kind

- Markdown

  - New kind hashtag

- SystemTap

  - New role attached for probe kind

- SystemVerilog

  - New kind define

## Readtags

- Enhancement: add -P, --with-psuedo-tags option.

- Enhancement: add -A, --absolute-input and -C, --canonicalize-input options. See readtags(1). for more details.

- Enhancement: add -d, --debug option for debugging purpose.

- Bugfix: make --formatter options works.

## 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.

- Pull in the latest subtrees by masatake · Pull Request #3902

- readtags: add --with-psuedo-tags option by masatake · Pull Request #3901

- I18nRubyGem: add a new kind, “locale” by masatake · Pull Request #3899

- Ruby: improve the way of parsing Class.new(SuperClass) by masatake · Pull Request #3898

- XML Based Resource System (XRC): new parser by masatake · Pull Request #3897

- I18nRubyGem: new parser by masatake · Pull Request #3895

- docs(man): write about guest parsers by masatake · Pull Request #3892

- Revise the release process by masatake · Pull Request #3894

- PkgConfig: new parser by masatake · Pull Request #3891

- rpmMacros: process areas surrounded by pairs of curly bracket by masatake · Pull Request #3890

- Vera: revise the dataflow of cppGetc -> vStringPut by masatake · Pull Request #3886

- nestlevel: Fix user data alignment by b4n · Pull Request #3883

- Cxx: extract section information from __attribute__((section(“SECTION”))) by masatake · Pull Request #3614

- NEWS: merge README.rst and README.md by masatake · Pull Request #3875

- builds-sys/test: enhance check-genfile target by masatake · Pull Request #3882

- various minor fixes by masatake · Pull Request #3880

- GitHub Actions: disable BSD workflows again by masatake · Pull Request #3879

- circleci: use fedora39 by masatake · Pull Request #3878

- misc/news.bash: generalize the script by masatake · Pull Request #3877

- docs(web): manage versions of NEWS by masatake · Pull Request #3872

- main: use the interval tree for filling scope field by masatake · Pull Request #3678

- V for merging by masatake · Pull Request #3871

- YACC: fix a typo in the pattern for skipping C strings by masatake · Pull Request #3869

- Revise: the way of accessing the optVm’s appData by masatake · Pull Request #3868

- dsl: extend #/../ operator to be able to extract a matched group in the pattern by masatake · Pull Request #3768

- Docs: minor fixes by masatake · Pull Request #3867

- misc/units.py: fix invalid escape sequences in regex patterns by masatake · Pull Request #3866

- build-sys: don’t use libxml-2 if its CRLF handling is broken by masatake · Pull Request #3858

- SQL: extract views in “create view if not exists VIEW …” by masatake · Pull Request #3850

- JavaScript: handle spread syntax by masatake · Pull Request #3846

- GitHub Actions: temporarily disable BSD workflows by leleliu008 · Pull Request #3848

- README.md: update the URL for the badge of CircleCI Build Status by masatake · Pull Request #3844

- Yaml: revise Ypath API by masatake · Pull Request #3842

- docs(web): add .readthedocs.yaml file by masatake · Pull Request #3843

- Update kotlin parser by dolik-rce · Pull Request #3841

- Various warnings fixes by b4n · Pull Request #3840

- main,tlib: fix wording by masatake · Pull Request #3838

- ReStructuredText: run guest parsers on code blocks by masatake · Pull Request #3839

- README.md: adjust wording of the configure command by rhythm16 · Pull Request #3835

- Revert “main,tlib: fix wording” by masatake · Pull Request #3837

- M4,Autoconf: allow to run a subparser inside quoted area by masatake · Pull Request #3833

- main,tlib: fix wording by masatake · Pull Request #3834

- Automake: various updates by masatake · Pull Request #3828

- Doc: update docs/windows.rst by leleliu008 · Pull Request #3825

- AppVeyor: use Visual Studio 2019 image by leleliu008 · Pull Request #3815

- BibTeX: accept “.” and “/” as parts of a bib entry by masatake · Pull Request #3824

- BibLaTeX: new subparser based on BibTeX by masatake · Pull Request #3822

- using %zu for printing size_t values by leleliu008 · Pull Request #3821

- Forth: new parser by farvardin · Pull Request #3812

- build(deps): bump actions/checkout from 3 to 4 by dependabot[bot] · Pull Request #3814

- GitHub Actions: Create dependabot.yml by k-takata · Pull Request #3813

- c-based: fix to handle edge case by jafl · Pull Request #3796

- C-based: put markers to signature by masatake · Pull Request #3804

- Appveyor: run nmake with defining DEBUG by masatake · Pull Request #3801

- main,debug: don’t use __func__ directly by masatake · Pull Request #3800

- input-validate: add CATEGORIES make variable by hirooih · Pull Request #3793

- Verilog validator by hirooih · Pull Request #3791

- update Mac installation instructions by euclio · Pull Request #3790

- CircleCI: run validate-input target on Fedora 38 instead of Fedora 30 by masatake · Pull Request #3792

- ReStructuredText: skip prefixed whitespaces when parsing markup lines by masatake · Pull Request #3789

- main: report the guessed reason if system(“sort”) is failed by masatake · Pull Request #3788

- Verilog,unit: lint-check unit tests by hirooih · Pull Request #3787

- Verilog: fix for continuous assignment delays by hirooih · Pull Request #3786

- RpmSpec: added references by masatake · Pull Request #3784

- Protobuf: reduce calling cppGetLastCharOrStringContents by masatake · Pull Request #3783

- LdScript: reject “ and ‘ as a part of an identifier by masatake · Pull Request #3782

- Cxx: ignore alignas by masatake · Pull Request #3781

- main: reserve errno in external sorting by masatake · Pull Request #3779

- Tmain: add a case for testing the Perl/Perl6 selector by masatake · Pull Request #3778

- MatLab: return appropriate tags for set get methods + unit by portalgun · Pull Request #3773

- build-sys: release note for 6.1 by masatake · Pull Request #3774

- Ruby: don’t make a scope for “Class.new…” with no block by masatake · Pull Request #3733

- Fix typo in asm.c by eltociear · Pull Request #3757

- Javascript: multiple prototype assignments by jafl · Pull Request #3770

- dsl: use strtol instead of es_read_from_string by masatake · Pull Request #3769

- JavaScript: additional fix for get & set, when specified in prototype by jafl · Pull Request #3765

- Fix compiler warnings by jafl · Pull Request #3764

- JavaScript: treat “get” and “set” as function names… by jafl · Pull Request #3761

- JavaScript: allow array index after ‘this’ keyword by jafl · Pull Request #3762

- JavaScript: report object fields specified via shortcut syntax by jafl · Pull Request #3763

- JavaScript: move unit test from review-needed to parser-javascript by jafl · Pull Request #3760

- main: make --version and --help options work even if a broken .ctags is given by masatake · Pull Request #3756

- docs(web),cosmetic: update optlib.rst typo removed by artemnovichenko · Pull Request #3753

- Markdown: set the parser-version 1.1 by masatake · Pull Request #3752

- Misc fix by masatake · Pull Request #3751

- Markdown: add hashtags functionality by jiangyinzuo · Pull Request #3747

- Markdown: accept sections in the line started from spaces by masatake · Pull Request #3750

- Various minor fixes by masatake · Pull Request #3742

- LdScript: support SORT keyword by masatake · Pull Request #3743

- libreadtags: pull the latest version by masatake · Pull Request #3735

- Fix many calls to ctype functions by b4n · Pull Request #3734

- vstring: Avoid int -> char truncation warnings by b4n · Pull Request #3690

- lregex: optimize substitute() by masatake · Pull Request #3728

- Misc fix by masatake · Pull Request #3731

- erlang: Fix crash parsing directives longer than 31 characters by b4n · Pull Request #3726

- Misc fix by masatake · Pull Request #3724

- verilog: treat a text-macro as an identifier by hirooih · Pull Request #3722

- readtags: fix a bug compiling a formatter wrongly if giving --formatter long option by masatake · Pull Request #3723

- Verilog: support virtual interface variables by hirooih · Pull Request #3720

- units.py: don’t use color if NO_COLOR is specified by masatake · Pull Request #3721

- Suppress warning by masatake · Pull Request #3714

- GDScript : mark xtag bit for implicitClass xtags by masatake · Pull Request #3717

- Fortran: fix wrongly specified xtag type by masatake · Pull Request #3718

- docs(web): sphinx minor fixes by masatake · Pull Request #3719

- D: parse template instance types by ntrel · Pull Request #3716

- D: fix parsing parameter with pointer by ntrel · Pull Request #3715

- Misc fix by masatake · Pull Request #3713

- D: set template members parent name by ntrel · Pull Request #3707

- D: remove overload, not a keyword by ntrel · Pull Request #3710

- D: parse contract expressions by ntrel · Pull Request #3708

- D: parse const(T), immutable, inout and shared type qualifiers by ntrel · Pull Request #3709

- readtags: canonicalize the input file name based on CWD ptag by masatake · Pull Request #3304

- C-based parsers,style: adjust placements of “{” after if by masatake · Pull Request #3706

- D: parse user-defined attributes by ntrel · Pull Request #3701

- Circleci: add fedora 38 by masatake · Pull Request #3705

- main: add missing const modifiers by masatake · Pull Request #3699

- autoit: Drop $ from variable names by techee · Pull Request #3697

- C++: accept prototypes starting from :: operator by masatake · Pull Request #3694

- main: revise bit fields in tagEntryInfo by masatake · Pull Request #3695

- Misc fix by masatake · Pull Request #3691

- AutoIt: Slightly optimize parsing #region by b4n · Pull Request #3689

- main,refactor: delete ‘inCorkQueue’ parameter from attachParserField() by masatake · Pull Request #3687

- Optscript: add _foreignreftag operator by masatake · Pull Request #3686

- Misc fix by masatake · Pull Request #3685

- Terraform: new parser by masatake · Pull Request #3684

- main: Don’t strdup the inputFileName when storing a tag to the corkQueue by masatake · Pull Request #3682

- Misc fix by masatake · Pull Request #3681

- Quarto: new parser by masatake · Pull Request #3677

- Misc fix by masatake · Pull Request #3679

- Ruby: skip if __DATA__ is found by masatake · Pull Request #3676

- SQL: handle “DATABASE” and “SCHEMA” keywords specially only when they come after “CREATE” by masatake · Pull Request #3674

- docs(web): add ctags-lang-kconfig.7.rst by masatake · Pull Request #3673

- SQL: Skip PL/SQL selection directives and add sanity check for inquiry directive size by techee · Pull Request #3654

- misc/review: add “accept” command to the Tmain inspector by masatake · Pull Request #3672

- Fortran: add “linkName” extra by masatake · Pull Request #3671

- Cxx: scan the cork queue instead of the symtab to fill nth fields by masatake · Pull Request #3642

- main: add quick path for looking up too long strings in the keyword table by techee · Pull Request #3664

- main,cosmetic: fix misspelling by jafl · Pull Request #3667

- Powershell: fix string escape issue by iaalm · Pull Request #3661

- Verilog: all text macro map to new kindDefinition:define by my2817 · Pull Request #3653

- Fix typo in conditional in C++ parser by al42and · Pull Request #3646

- Tcl: don’t include ‘”’ char as a part of identifiers by masatake · Pull Request #3639

- GitHubActions: fix testing-openbsd.yml automake version broken issue by leleliu008 · Pull Request #3640

- Ruby: handle curly bracket by masatake · Pull Request #3633

- Kconfig: support the macro language by masatake · Pull Request #3632

- Ldscript: improve tagging versions in VERSION commands by masatake · Pull Request #3631

- CPreProcessor: don’t include the newline after a backslash in string or char literals by masatake · Pull Request #3629

- C,Asm,LdScript: minor fixes by masatake · Pull Request #3623

- Markdown: fix the condition to detect code blocks by masatake · Pull Request #3626

- C++,ObjectiveC,C,main: fix the broken selector for .h by masatake · Pull Request #3622

- Cxx: support typeof and __typeof__ keywords of the gcc extension by masatake · Pull Request #3621

- Various preparations by masatake · Pull Request #3617

- readtags: unescape input field (a.k.a {tagfile}) only if TAG_OUTPUT_MODE is u-ctags and TAG_OUTPUT_FILESEP is slash by masatake · Pull Request #3599

- main: introduce --_paramdef-<LANG>=<NAME>,<DESCRIPTION> option by masatake · Pull Request #3613

- Perl: skip string literals when collecting heredoc markers by masatake · Pull Request #3592

- Org: optimize by masatake · Pull Request #3611

- GitHub Actions: fix testing-mac.yml Homebrew upgrade python@3.10 and python@3.11 failed problem by leleliu008 · Pull Request #3610

- Systemtap: add new role “attached” for “probe” kind , and run CPreProcessor as a guest parser by masatake · Pull Request #3607

- C++,C: record consteval, constinit, thread_local, and __thread to properties: field by masatake · Pull Request #3602

- HTML: introduce a specialized tokenizer for script areas by masatake · Pull Request #3598

## Issues close or partially closed via above pull requests

- YAML: extract keys (with scope) for I18n Ruby Gem · Issue #3523

- docs(man): write about using multiple parsers for single input file · Issue #3888

- Write about kind collisions to ctags-faq(7) · Issue #3007

- create annotation tags instead of lightweight tag · Issue #3767

- CPreProcessor: Assertion ‘c >= 0 && c <= 0xff’ failed · Issue #3771

- Convert NEWS.md to NEWS.rst · Issue #3874

- [Question] Defining new regex-based tags with scope defined by built-in ctags kinds · Issue #3637

- Warning reported when running make units · Issue #3865

- Wording · Issue #3830

- BibTeX: “.” in label · Issue #3823

- Bibtex - include types defined on biblatex package · Issue #3802

- AIX compiling from source is failing · Issue #3807

- LdScript: using cppGetc() in wrong ways · Issue #3449

- Cxx: the way of handling alignas · Issue #3780

- main: ctags option processing fails if “Language already defined”, including ctags --help · Issue #2935

- Markdown: tagging a chapter unexpectedly · Issue #3748

- units.py: support NO_COLOR (https://no-color.org/) · Issue #3688

- Request: filename related functions in readtags expressions · Issue #3168

- C++: fully qualified return type breaks parsing prototypes · Issue #3693

- SQL: Warning: ignoring null tag in … /src/test/regress/sql/collate.icu.utf8.sql(line: 412) · Issue #3636

- Fortran: Improve handling of case insensitivity · Issue #3668

- C/C++: Endless parse large file · Issue #3634

- Tcl parser - Ctags can not generating tags for some proc · Issue #3638

- Markdown: comments within shell code of markdown files are recognized as chapters · Issue #3625

- C: support typeof gcc extension · Issue #3620

- main: use escape sequences when printing pseudo tags as explained in tags(5) · Issue #3577

- readtags: improper handling of escape sequences in input field · Issue #3559

- Perl: Incorrectly sees << inside a string as start of a heredoc · Issue #3588

- C++: Output information on constexpr and consteval functions · Issue #3539

- html: apostrophe in JavaScript comment breaks guest parser · Issue #3581

- HTML: HTML comment starter in JavaScript area · Issue #3597

- html: apostrophe in JavaScript comment breaks guest parser · Issue #3581

- HTML: HTML comment starter in JavaScript area · Issue #3597