* [ITA] ctags 6.1.0 - programming language source indexing and cross-reference tool
@ 2024-06-15 5:20 Brian Inglis
2024-06-15 15:10 ` Brian Inglis
0 siblings, 1 reply; 4+ messages in thread
From: Brian Inglis @ 2024-06-15 5:20 UTC (permalink / raw)
To: cygwin-apps
Frank was a contributor to universal-ctags ~2015 but seemed mainly for
Windows and Notepad++ plug in development.
I would like to adopt ctags and update it to successor universal-ctags.
Description:
Generates an index (tag) file of language objects found in
source files.
The index makes it easy for text editors or other utilities to locate
the indexed items.
Ctags can also generate a cross reference file which lists information
about the various objects found in a set of language files in human
readable form.
Exuberant Ctags improves on ctags because it can find all types of
language tags, including macro definitions, enumerated values (values
inside enum{...}), function and method definitions, enum/struct/union
tags, external function prototypes, typedef names and variable
declarations.
Exuberant Ctags is far less likely to be fooled by code containing
preprocessor conditional constructs than ctags.
Exuberant ctags supports output of Emacs style TAGS files and can be
used to print out a list of selected objects found in source files.
Install ctags if you are going to use your system for C programming.
License: GPL-2.0-or-later
For more info see the project home pages:
https://ctags.io/
https://github.com/universal-ctags/ctags
Packaged by major Linux and BSD distros, MacPorts, and Msys2:
https://repology.org/project/universal-ctags/versions
Attached cygport and at:
https://cygwin.com/cgit/cygwin-packages/ctags/tree/ctags.cygport?h=playground
package build with a couple of failed tests with known causes:
https://cygwin.com/cgi-bin2/jobs.cgi?srcpkg=ctags
log at:
https://github.com/cygwin/scallywag/actions/runs/9399504588
Packaged universal-ctags 6.1 performance was:
Time tags package
6s 8MB ctags source tree including multi-language test examples
12s 22MB newlib-cygwin source tree
For changes since the previous Cygwin release see below:
2024-12-28 6.1
New and extended options and their flags
- ``--regex-<LANG>`` option
- ``{postrun}`` and ``{intervaltab}`` flags are added.
Incompatible changes
- `section` kind is deleted from Asm parser.
Parser related changes
New parsers
The following parsers have been added:
- BibLaTeX *BibTeX based subparser*
- Forth *optlib*
- Quarto: new parser
+ Quarto
- V: new parser
- Terraform: new parser
+ Terraform (HCL) (*.tf): new parser
- TerraformVariables *optlib*
- PkgConfig *optlib*: new parser
- I18nRubyGem *YAML based subparser*
- XRC *libxml*: new parser
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 field `section`
+ New field `alias`
- C++
+ New field `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 :ref:`readtags(1) <readtags(1)>`. for more details.
- Enhancement: add `-d, --debug` option for debugging purpose.
- Bugfix: make `--formatter` options works.
Merged pull requests
- Pull in the latest subtrees
- readtags: add --with-psuedo-tags option
- I18nRubyGem: add a new kind, "locale"
- Ruby: improve the way of parsing `Class.new(SuperClass)`
- XML Based Resource System (XRC): new parser
- I18nRubyGem: new parser
- docs(man): write about guest parsers
- Revise the release process
- PkgConfig: new parser
- rpmMacros: process areas surrounded by pairs of curly bracket
- Vera: revise the dataflow of cppGetc -> vStringPut
- nestlevel: Fix user data alignment
- Cxx: extract section information from __attribute__((section("SECTION")))
- NEWS: merge README.rst and README.md
- builds-sys/test: enhance check-genfile target
- various minor fixes
- GitHub Actions: disable BSD workflows again
- circleci: use fedora39
- misc/news.bash: generalize the script
- docs(web): manage versions of NEWS
- main: use the interval tree for filling scope field
- V for merging
- YACC: fix a typo in the pattern for skipping C strings
- Revise: the way of accessing the optVm's appData
- dsl: extend #/../ operator to be able to extract a matched group in the pattern
- Docs: minor fixes
- misc/units.py: fix invalid escape sequences in regex patterns
- build-sys: don't use libxml-2 if its CRLF handling is broken
- SQL: extract views in "create view if not exists VIEW ..."
- JavaScript: handle spread syntax
- GitHub Actions: temporarily disable BSD workflows
- README.md: update the URL for the badge of CircleCI Build Status
- Yaml: revise Ypath API
- docs(web): add .readthedocs.yaml file
- Update kotlin parser
- Various warnings fixes
- main,tlib: fix wording
- ReStructuredText: run guest parsers on code blocks
- README.md: adjust wording of the configure command
- Revert "main,tlib: fix wording"
- M4,Autoconf: allow to run a subparser inside quoted area
- main,tlib: fix wording
- Automake: various updates
- Doc: update docs/windows.rst
- AppVeyor: use Visual Studio 2019 image
- BibTeX: accept "." and "/" as parts of a bib entry
- BibLaTeX: new subparser based on BibTeX
- using %zu for printing size_t values
- Forth: new parser
- build(deps): bump actions/checkout from 3 to 4
- GitHub Actions: Create dependabot.yml
- c-based: fix to handle edge case
- C-based: put markers to signature
- Appveyor: run nmake with defining DEBUG
- main,debug: don't use __func__ directly
- input-validate: add CATEGORIES make variable
- Verilog validator
- update Mac installation instructions
- CircleCI: run validate-input target on Fedora 38 instead of Fedora 30
- ReStructuredText: skip prefixed whitespaces when parsing markup lines
- main: report the guessed reason if system("sort") is failed
- Verilog,unit: lint-check unit tests
- Verilog: fix for continuous assignment delays
- RpmSpec: added references
- Protobuf: reduce calling cppGetLastCharOrStringContents
- LdScript: reject " and ' as a part of an identifier
- Cxx: ignore alignas
- main: reserve errno in external sorting
- Tmain: add a case for testing the Perl/Perl6 selector
- MatLab: return appropriate tags for set get methods + unit
- build-sys: release note for 6.1
- Ruby: don't make a scope for "Class.new..." with no block
- Fix typo in asm.c
- Javascript: multiple prototype assignments
- dsl: use strtol instead of es_read_from_string
- JavaScript: additional fix for get & set, when specified in prototype
- Fix compiler warnings
- JavaScript: treat "get" and "set" as function names…
- JavaScript: allow array index after 'this' keyword
- JavaScript: report object fields specified via shortcut syntax
- JavaScript: move unit test from review-needed to parser-javascript
- main: make --version and --help options work even if a broken .ctags is given
- docs(web),cosmetic: update optlib.rst typo removed
- Markdown: set the parser-version 1.1
- Misc fix
- Markdown: add hashtags functionality
- Markdown: accept sections in the line started from spaces
- Various minor fixes
- LdScript: support SORT keyword
- libreadtags: pull the latest version
- Fix many calls to ctype functions
- vstring: Avoid int -> char truncation warnings
- lregex: optimize substitute()
- Misc fix
- erlang: Fix crash parsing directives longer than 31 characters
- Misc fix
- verilog: treat a text-macro as an identifier
- readtags: fix a bug compiling a formatter wrongly if giving
--formatter long option
- Verilog: support virtual interface variables
- units.py: don't use color if NO_COLOR is specified
- Suppress warning
- GDScript : mark xtag bit for implicitClass xtags
- Fortran: fix wrongly specified xtag type
- docs(web): sphinx minor fixes
- D: parse template instance types
- D: fix parsing parameter with pointer
- Misc fix
- D: set template members parent name
- D: remove `overload`, not a keyword
- D: parse contract expressions
- D: parse const(T), immutable, inout and shared type qualifiers
- readtags: canonicalize the input file name based on CWD ptag
- C-based parsers,style: adjust placements of "{" after if
- D: parse user-defined attributes
- Circleci: add fedora 38
- main: add missing const modifiers
- autoit: Drop $ from variable names
- C++: accept prototypes starting from :: operator
- main: revise bit fields in tagEntryInfo
- Misc fix
- AutoIt: Slightly optimize parsing #region
- main,refactor: delete 'inCorkQueue' parameter from attachParserField()
- Optscript: add _foreignreftag operator
- Misc fix
- Terraform: new parser
- main: Don't strdup the inputFileName when storing a tag to the corkQueue
- Misc fix
- Quarto: new parser
- Misc fix
- Ruby: skip if __DATA__ is found
- SQL: handle "DATABASE" and "SCHEMA" keywords specially only when they
come after "CREATE"
- docs(web): add ctags-lang-kconfig.7.rst
- SQL: Skip PL/SQL selection directives and add sanity check for inquiry
directive size
- misc/review: add "accept" command to the Tmain inspector
- Fortran: add "linkName" extra
- Cxx: scan the cork queue instead of the symtab to fill nth fields
- main: add quick path for looking up too long strings in the keyword table
- main,cosmetic: fix misspelling
- Powershell: fix string escape issue
- Verilog: all text macro map to new kindDefinition:define
- Fix typo in conditional in C++ parser
- Tcl: don't include '"' char as a part of identifiers
- GitHubActions: fix testing-openbsd.yml automake version broken issue
- Ruby: handle curly bracket
- Kconfig: support the macro language
- Ldscript: improve tagging versions in VERSION commands
- CPreProcessor: don't include the newline after a backslash in string
or char literals
- C,Asm,LdScript: minor fixes
- Markdown: fix the condition to detect code blocks
- C++,ObjectiveC,C,main: fix the broken selector for .h
- Cxx: support typeof and __typeof__ keywords of the gcc extension
- Various preparations
- readtags: unescape input field (a.k.a {tagfile}) only if
TAG_OUTPUT_MODE is u-ctags and TAG_OUTPUT_FILESEP is slash
- main: introduce --_paramdef-<LANG>=<NAME>,<DESCRIPTION> option
- Perl: skip string literals when collecting heredoc markers
- Org: optimize
- GitHub Actions: fix testing-mac.yml Homebrew upgrade python@3.10 and
python@3.11 failed problem
- Systemtap: add new role "attached" for "probe" kind , and run
CPreProcessor as a guest parser
- C++,C: record consteval, constinit, thread_local, and __thread to
properties: field
- HTML: introduce a specialized tokenizer for script areas
Issues close or partially closed via above pull requests
- YAML: extract keys (with scope) for I18n Ruby Gem
- docs(man): write about using multiple parsers for single input file
- Write about kind collisions to ctags-faq(7)
- create annotation tags instead of lightweight tag
- CPreProcessor: Assertion `c >= 0 && c <= 0xff' failed
- Convert NEWS.md to NEWS.rst
- [Question] Defining new regex-based tags with scope defined by
built-in `ctags` kinds
- Warning reported when running make units
- Wording
- BibTeX: "." in label
- Bibtex - include types defined on biblatex package
- AIX compiling from source is failing
- LdScript: using cppGetc() in wrong ways
- Cxx: the way of handling alignas
- main: ctags option processing fails if "Language already defined",
including ctags --help
- Markdown: tagging a chapter unexpectedly
- units.py: support NO_COLOR (https://no-color.org/)
- Request: filename related functions in readtags expressions
- C++: fully qualified return type breaks parsing prototypes
- SQL: Warning: ignoring null tag in ...
/src/test/regress/sql/collate.icu.utf8.sql(line: 412)
- Fortran: Improve handling of case insensitivity
- C/C++: Endless parse large file
- Tcl parser - Ctags can not generating tags for some proc
- Markdown: comments within shell code of markdown files are recognized
as chapters
- C: support typeof gcc extension
- main: use escape sequences when printing pseudo tags as explained in tags(5)
- readtags: improper handling of escape sequences in input field
- Perl: Incorrectly sees << inside a string as start of a heredoc
- C++: Output information on `constexpr` and `consteval` functions
- html: apostrophe in JavaScript comment breaks guest parser
- HTML: HTML comment starter in JavaScript area
- html: apostrophe in JavaScript comment breaks guest parser
- HTML: HTML comment starter in JavaScript area
2022-12-15 6.0
New and extended options
- ``--exclude-exception``, an option complementing ``--exclude``
- ``--maxdepth`` option
- ``--input-encoding=ENCODING`` and ``--output-encoding=ENCODING``
- ``--map-<LANG>`` is newly introduced to control the file name
to language mappings (langmap) with finer granularity than
``--langmap`` allows.
- Guessing parser from file contents (``-G`` option)
- Including line number to pattern field
- Long names in kinds, fields, and extra options
- Wildcard in options
- Extra tag entries (``--extras``)
- Kinds synchronization
- Enabling/disabling pseudo-tags (``--pseudo-tags`` option)
- ``--put-field-prefix`` options
- "always" and "never" as an argument for ``--tag-relative``
- ``--tag-relative`` option is extend.
- Defining a parser specific extra
- Defining a CPreProcessor macro from command line
- Options for inspecting ctags internals
- Notice messages and ``--quiet``
- Skipping utf-8 BOM
- Interactive mode
- PCRE2 regular expression
Incompatible changes in command line
- ``-D`` option
Changes imported from Exuberant Ctags
Some changes have also been imported from Fedora and Debian.
Parser related changes
New parsers
- Abaqus
- Abc
- Ada
- AnsiblePlaybook *libyaml*
- Asciidoc
- Autoconf
- Automake
- AutoIt
- BibTeX
- Clojure
- CMake *optlib*
- CSS
- Ctags option library *optlib*
- CUDA
- D
- DBusIntrospect *libxml*
- Diff
- Dots *Sh based subparser*
- DTD
- DTS
- Elixir *optlib*
- Elm *peg/packcc*
- Falcon
- FrontMatter *only YAML syntax, running as a guest on R?Markdown*
- FunctionParameters *Perl based subparser*
- Gdbinit script *optlib*
- GemSpec *Ruby based subparser*
- GDScript
- Glade *libxml*
- Go
- GPerf *optlib*
- Haskell
- Haxe
- iPythonCell *optlib*, *Python based subparser*
- Inko *optlib*
- JavaProperties
- JSON
- Julia
- Kconfig *optlib*
- Kotlin *peg/packcc*
- GNU linker script(LdScript)
- LEX *optlib*
- Man page *optlib*
- Markdown
- Maven2 *libxml*
- MesonBuild (Meson) *optlib*
- MesonOptions *optlib+script*
- Moose *Perl based subparser*
- Myrddin
- M4
- NSIS
- ObjectiveC
- Org *optlib*
- OpenAPI (3.x.x / Swagger 2.0) *Yaml based subparser*
- Passwd *optlib*
- PuppetManifest *optlib*
- Perl6 *Another name for Raku*
- Pod *optlib*
- PowerShell
- PropertyList(plist) *libxml*
- Protobuf
- PythonLoggingConfig
- QemuHX *optlib*
- QtMoc
- R
- R6Class *R based subparser*
- Rake *Ruby based subparser*
- Raku *formerly Perl6*
- RDoc *optlib pcre2*
- RelaxNG *libxml*
- ReStructuredText
- RMarkdown *Markdown based subparser*
- Robot
- RpmMacros *optlib*
- RpmSpec
- RSpec *Ruby based subparser*
- Rust
- S4Class *R based subparser*
- SCSS *optlib*
- SystemdUnit
- SystemTap *optlib*
- SystemVerilog
- SVG *libxml*
- TclOO (see :ref:`The new Tcl parser <tcl>`)
- Thrift *peg/packcc*
- TTCN
- Txt2tags
- TypeScript
- Varlink *peg/packcc*
- WindRes
- XSLT v1.0 *libxml*
- Yacc
- Yaml *libyaml*
- YumRepo
- Zephir
- Zsh
Libxml2 is required to use the parser(s) marked with *libxml*.
Libyaml is required to use the parser(s) marked with *libyaml*.
pcre2 is required to use the parser(s) marked with *pcre2*.
Fully improved parsers
- C (see :ref:`The new C/C++ parser <cxx>`)
- C++ (see :ref:`The new C/C++ parser <cxx>`)
- Python (see :ref:`The new Python parser <python>`)
- HTML (see :ref:`The new HTML parser <html>`)
- Tcl (see :ref:`The new Tcl parser <tcl>`)
- ITcl (see :ref:`The new Tcl parser <tcl>`)
- Ant (rewritten with *libxml*)
- PHP
- Verilog/SystemVerilog
- Automatically expanding CPreProcessor macros defined in the same input
file (HIGHLY EXPERIMENTAL)
Readtags
- Printing line numbers with ``-n``
- Filtering in readtags command
- readtags has ability to find tag entries by name.
- Sorting in readtags command
- Listing pseudo tags with ``-D``
Attached: ctags.cygport
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [ITA] ctags 6.1.0 - programming language source indexing and cross-reference tool
2024-06-15 5:20 [ITA] ctags 6.1.0 - programming language source indexing and cross-reference tool Brian Inglis
@ 2024-06-15 15:10 ` Brian Inglis
2024-06-17 15:40 ` Jon Turney
0 siblings, 1 reply; 4+ messages in thread
From: Brian Inglis @ 2024-06-15 15:10 UTC (permalink / raw)
To: cygwin-apps
[-- Attachment #1: Type: text/plain, Size: 18123 bytes --]
[Forgot attachments]
On 2024-06-14 23:20, Brian Inglis via Cygwin-apps wrote:
> Frank was a contributor to universal-ctags ~2015 but seemed mainly for
> Windows and Notepad++ plug in development.
>
> I would like to adopt ctags and update it to successor universal-ctags.
>
> Description:
> Generates an index (tag) file of language objects found in
> source files.
> The index makes it easy for text editors or other utilities to locate
> the indexed items.
> Ctags can also generate a cross reference file which lists information
> about the various objects found in a set of language files in human
> readable form.
> Exuberant Ctags improves on ctags because it can find all types of
> language tags, including macro definitions, enumerated values (values
> inside enum{...}), function and method definitions, enum/struct/union
> tags, external function prototypes, typedef names and variable
> declarations.
> Exuberant Ctags is far less likely to be fooled by code containing
> preprocessor conditional constructs than ctags.
> Exuberant ctags supports output of Emacs style TAGS files and can be
> used to print out a list of selected objects found in source files.
> Install ctags if you are going to use your system for C programming.
>
> License: GPL-2.0-or-later
>
> For more info see the project home pages:
>
> https://ctags.io/
>
> https://github.com/universal-ctags/ctags
>
> Packaged by major Linux and BSD distros, MacPorts, and Msys2:
>
> https://repology.org/project/universal-ctags/versions
>
> Attached cygport and at:
>
> https://cygwin.com/cgit/cygwin-packages/ctags/tree/ctags.cygport?h=playground
>
> package build with a couple of failed tests with known causes:
>
> https://cygwin.com/cgi-bin2/jobs.cgi?srcpkg=ctags
>
> log at:
>
> https://github.com/cygwin/scallywag/actions/runs/9399504588
>
> Packaged universal-ctags 6.1 performance was:
>
> Time tags package
> 6s 8MB ctags source tree including multi-language test examples
> 12s 22MB newlib-cygwin source tree
>
> For changes since the previous Cygwin release see below:
>
> 2024-12-28 6.1
>
> New and extended options and their flags
>
> - ``--regex-<LANG>`` option
> - ``{postrun}`` and ``{intervaltab}`` flags are added.
>
> Incompatible changes
>
> - `section` kind is deleted from Asm parser.
>
> Parser related changes
>
> New parsers
>
> The following parsers have been added:
>
> - BibLaTeX *BibTeX based subparser*
> - Forth *optlib*
> - Quarto: new parser
> + Quarto
>
> - V: new parser
> - Terraform: new parser
> + Terraform (HCL) (*.tf): new parser
>
> - TerraformVariables *optlib*
> - PkgConfig *optlib*: new parser
> - I18nRubyGem *YAML based subparser*
> - XRC *libxml*: new parser
>
> 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 field `section`
> + New field `alias`
>
> - C++
> + New field `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 :ref:`readtags(1) <readtags(1)>`. for more details.
> - Enhancement: add `-d, --debug` option for debugging purpose.
> - Bugfix: make `--formatter` options works.
>
> Merged pull requests
>
> - Pull in the latest subtrees
> - readtags: add --with-psuedo-tags option
> - I18nRubyGem: add a new kind, "locale"
> - Ruby: improve the way of parsing `Class.new(SuperClass)`
> - XML Based Resource System (XRC): new parser
> - I18nRubyGem: new parser
> - docs(man): write about guest parsers
> - Revise the release process
> - PkgConfig: new parser
> - rpmMacros: process areas surrounded by pairs of curly bracket
> - Vera: revise the dataflow of cppGetc -> vStringPut
> - nestlevel: Fix user data alignment
> - Cxx: extract section information from __attribute__((section("SECTION")))
> - NEWS: merge README.rst and README.md
> - builds-sys/test: enhance check-genfile target
> - various minor fixes
> - GitHub Actions: disable BSD workflows again
> - circleci: use fedora39
> - misc/news.bash: generalize the script
> - docs(web): manage versions of NEWS
> - main: use the interval tree for filling scope field
> - V for merging
> - YACC: fix a typo in the pattern for skipping C strings
> - Revise: the way of accessing the optVm's appData
> - dsl: extend #/../ operator to be able to extract a matched group in the pattern
> - Docs: minor fixes
> - misc/units.py: fix invalid escape sequences in regex patterns
> - build-sys: don't use libxml-2 if its CRLF handling is broken
> - SQL: extract views in "create view if not exists VIEW ..."
> - JavaScript: handle spread syntax
> - GitHub Actions: temporarily disable BSD workflows
> - README.md: update the URL for the badge of CircleCI Build Status
> - Yaml: revise Ypath API
> - docs(web): add .readthedocs.yaml file
> - Update kotlin parser
> - Various warnings fixes
> - main,tlib: fix wording
> - ReStructuredText: run guest parsers on code blocks
> - README.md: adjust wording of the configure command
> - Revert "main,tlib: fix wording"
> - M4,Autoconf: allow to run a subparser inside quoted area
> - main,tlib: fix wording
> - Automake: various updates
> - Doc: update docs/windows.rst
> - AppVeyor: use Visual Studio 2019 image
> - BibTeX: accept "." and "/" as parts of a bib entry
> - BibLaTeX: new subparser based on BibTeX
> - using %zu for printing size_t values
> - Forth: new parser
> - build(deps): bump actions/checkout from 3 to 4
> - GitHub Actions: Create dependabot.yml
> - c-based: fix to handle edge case
> - C-based: put markers to signature
> - Appveyor: run nmake with defining DEBUG
> - main,debug: don't use __func__ directly
> - input-validate: add CATEGORIES make variable
> - Verilog validator
> - update Mac installation instructions
> - CircleCI: run validate-input target on Fedora 38 instead of Fedora 30
> - ReStructuredText: skip prefixed whitespaces when parsing markup lines
> - main: report the guessed reason if system("sort") is failed
> - Verilog,unit: lint-check unit tests
> - Verilog: fix for continuous assignment delays
> - RpmSpec: added references
> - Protobuf: reduce calling cppGetLastCharOrStringContents
> - LdScript: reject " and ' as a part of an identifier
> - Cxx: ignore alignas
> - main: reserve errno in external sorting
> - Tmain: add a case for testing the Perl/Perl6 selector
> - MatLab: return appropriate tags for set get methods + unit
> - build-sys: release note for 6.1
> - Ruby: don't make a scope for "Class.new..." with no block
> - Fix typo in asm.c
> - Javascript: multiple prototype assignments
> - dsl: use strtol instead of es_read_from_string
> - JavaScript: additional fix for get & set, when specified in prototype
> - Fix compiler warnings
> - JavaScript: treat "get" and "set" as function names…
> - JavaScript: allow array index after 'this' keyword
> - JavaScript: report object fields specified via shortcut syntax
> - JavaScript: move unit test from review-needed to parser-javascript
> - main: make --version and --help options work even if a broken .ctags is given
> - docs(web),cosmetic: update optlib.rst typo removed
> - Markdown: set the parser-version 1.1
> - Misc fix
> - Markdown: add hashtags functionality
> - Markdown: accept sections in the line started from spaces
> - Various minor fixes
> - LdScript: support SORT keyword
> - libreadtags: pull the latest version
> - Fix many calls to ctype functions
> - vstring: Avoid int -> char truncation warnings
> - lregex: optimize substitute()
> - Misc fix
> - erlang: Fix crash parsing directives longer than 31 characters
> - Misc fix
> - verilog: treat a text-macro as an identifier
> - readtags: fix a bug compiling a formatter wrongly if giving
> --formatter long option
> - Verilog: support virtual interface variables
> - units.py: don't use color if NO_COLOR is specified
> - Suppress warning
> - GDScript : mark xtag bit for implicitClass xtags
> - Fortran: fix wrongly specified xtag type
> - docs(web): sphinx minor fixes
> - D: parse template instance types
> - D: fix parsing parameter with pointer
> - Misc fix
> - D: set template members parent name
> - D: remove `overload`, not a keyword
> - D: parse contract expressions
> - D: parse const(T), immutable, inout and shared type qualifiers
> - readtags: canonicalize the input file name based on CWD ptag
> - C-based parsers,style: adjust placements of "{" after if
> - D: parse user-defined attributes
> - Circleci: add fedora 38
> - main: add missing const modifiers
> - autoit: Drop $ from variable names
> - C++: accept prototypes starting from :: operator
> - main: revise bit fields in tagEntryInfo
> - Misc fix
> - AutoIt: Slightly optimize parsing #region
> - main,refactor: delete 'inCorkQueue' parameter from attachParserField()
> - Optscript: add _foreignreftag operator
> - Misc fix
> - Terraform: new parser
> - main: Don't strdup the inputFileName when storing a tag to the corkQueue
> - Misc fix
> - Quarto: new parser
> - Misc fix
> - Ruby: skip if __DATA__ is found
> - SQL: handle "DATABASE" and "SCHEMA" keywords specially only when they
> come after "CREATE"
> - docs(web): add ctags-lang-kconfig.7.rst
> - SQL: Skip PL/SQL selection directives and add sanity check for inquiry
> directive size
> - misc/review: add "accept" command to the Tmain inspector
> - Fortran: add "linkName" extra
> - Cxx: scan the cork queue instead of the symtab to fill nth fields
> - main: add quick path for looking up too long strings in the keyword table
> - main,cosmetic: fix misspelling
> - Powershell: fix string escape issue
> - Verilog: all text macro map to new kindDefinition:define
> - Fix typo in conditional in C++ parser
> - Tcl: don't include '"' char as a part of identifiers
> - GitHubActions: fix testing-openbsd.yml automake version broken issue
> - Ruby: handle curly bracket
> - Kconfig: support the macro language
> - Ldscript: improve tagging versions in VERSION commands
> - CPreProcessor: don't include the newline after a backslash in string
> or char literals
> - C,Asm,LdScript: minor fixes
> - Markdown: fix the condition to detect code blocks
> - C++,ObjectiveC,C,main: fix the broken selector for .h
> - Cxx: support typeof and __typeof__ keywords of the gcc extension
> - Various preparations
> - readtags: unescape input field (a.k.a {tagfile}) only if
> TAG_OUTPUT_MODE is u-ctags and TAG_OUTPUT_FILESEP is slash
> - main: introduce --_paramdef-<LANG>=<NAME>,<DESCRIPTION> option
> - Perl: skip string literals when collecting heredoc markers
> - Org: optimize
> - GitHub Actions: fix testing-mac.yml Homebrew upgrade python@3.10 and
> python@3.11 failed problem
> - Systemtap: add new role "attached" for "probe" kind , and run
> CPreProcessor as a guest parser
> - C++,C: record consteval, constinit, thread_local, and __thread to
> properties: field
> - HTML: introduce a specialized tokenizer for script areas
>
> Issues close or partially closed via above pull requests
>
> - YAML: extract keys (with scope) for I18n Ruby Gem
> - docs(man): write about using multiple parsers for single input file
> - Write about kind collisions to ctags-faq(7)
> - create annotation tags instead of lightweight tag
> - CPreProcessor: Assertion `c >= 0 && c <= 0xff' failed
> - Convert NEWS.md to NEWS.rst
> - [Question] Defining new regex-based tags with scope defined by
> built-in `ctags` kinds
> - Warning reported when running make units
> - Wording
> - BibTeX: "." in label
> - Bibtex - include types defined on biblatex package
> - AIX compiling from source is failing
> - LdScript: using cppGetc() in wrong ways
> - Cxx: the way of handling alignas
> - main: ctags option processing fails if "Language already defined",
> including ctags --help
> - Markdown: tagging a chapter unexpectedly
> - units.py: support NO_COLOR (https://no-color.org/)
> - Request: filename related functions in readtags expressions
> - C++: fully qualified return type breaks parsing prototypes
> - SQL: Warning: ignoring null tag in ...
> /src/test/regress/sql/collate.icu.utf8.sql(line: 412)
> - Fortran: Improve handling of case insensitivity
> - C/C++: Endless parse large file
> - Tcl parser - Ctags can not generating tags for some proc
> - Markdown: comments within shell code of markdown files are recognized
> as chapters
> - C: support typeof gcc extension
> - main: use escape sequences when printing pseudo tags as explained in tags(5)
> - readtags: improper handling of escape sequences in input field
> - Perl: Incorrectly sees << inside a string as start of a heredoc
> - C++: Output information on `constexpr` and `consteval` functions
> - html: apostrophe in JavaScript comment breaks guest parser
> - HTML: HTML comment starter in JavaScript area
> - html: apostrophe in JavaScript comment breaks guest parser
> - HTML: HTML comment starter in JavaScript area
>
>
> 2022-12-15 6.0
>
> New and extended options
>
> - ``--exclude-exception``, an option complementing ``--exclude``
> - ``--maxdepth`` option
> - ``--input-encoding=ENCODING`` and ``--output-encoding=ENCODING``
> - ``--map-<LANG>`` is newly introduced to control the file name
> to language mappings (langmap) with finer granularity than
> ``--langmap`` allows.
> - Guessing parser from file contents (``-G`` option)
> - Including line number to pattern field
> - Long names in kinds, fields, and extra options
> - Wildcard in options
> - Extra tag entries (``--extras``)
> - Kinds synchronization
> - Enabling/disabling pseudo-tags (``--pseudo-tags`` option)
> - ``--put-field-prefix`` options
> - "always" and "never" as an argument for ``--tag-relative``
> - ``--tag-relative`` option is extend.
> - Defining a parser specific extra
> - Defining a CPreProcessor macro from command line
> - Options for inspecting ctags internals
> - Notice messages and ``--quiet``
> - Skipping utf-8 BOM
> - Interactive mode
> - PCRE2 regular expression
>
> Incompatible changes in command line
>
> - ``-D`` option
>
> Changes imported from Exuberant Ctags
>
> Some changes have also been imported from Fedora and Debian.
>
> Parser related changes
>
> New parsers
>
> - Abaqus
> - Abc
> - Ada
> - AnsiblePlaybook *libyaml*
> - Asciidoc
> - Autoconf
> - Automake
> - AutoIt
> - BibTeX
> - Clojure
> - CMake *optlib*
> - CSS
> - Ctags option library *optlib*
> - CUDA
> - D
> - DBusIntrospect *libxml*
> - Diff
> - Dots *Sh based subparser*
> - DTD
> - DTS
> - Elixir *optlib*
> - Elm *peg/packcc*
> - Falcon
> - FrontMatter *only YAML syntax, running as a guest on R?Markdown*
> - FunctionParameters *Perl based subparser*
> - Gdbinit script *optlib*
> - GemSpec *Ruby based subparser*
> - GDScript
> - Glade *libxml*
> - Go
> - GPerf *optlib*
> - Haskell
> - Haxe
> - iPythonCell *optlib*, *Python based subparser*
> - Inko *optlib*
> - JavaProperties
> - JSON
> - Julia
> - Kconfig *optlib*
> - Kotlin *peg/packcc*
> - GNU linker script(LdScript)
> - LEX *optlib*
> - Man page *optlib*
> - Markdown
> - Maven2 *libxml*
> - MesonBuild (Meson) *optlib*
> - MesonOptions *optlib+script*
> - Moose *Perl based subparser*
> - Myrddin
> - M4
> - NSIS
> - ObjectiveC
> - Org *optlib*
> - OpenAPI (3.x.x / Swagger 2.0) *Yaml based subparser*
> - Passwd *optlib*
> - PuppetManifest *optlib*
> - Perl6 *Another name for Raku*
> - Pod *optlib*
> - PowerShell
> - PropertyList(plist) *libxml*
> - Protobuf
> - PythonLoggingConfig
> - QemuHX *optlib*
> - QtMoc
> - R
> - R6Class *R based subparser*
> - Rake *Ruby based subparser*
> - Raku *formerly Perl6*
> - RDoc *optlib pcre2*
> - RelaxNG *libxml*
> - ReStructuredText
> - RMarkdown *Markdown based subparser*
> - Robot
> - RpmMacros *optlib*
> - RpmSpec
> - RSpec *Ruby based subparser*
> - Rust
> - S4Class *R based subparser*
> - SCSS *optlib*
> - SystemdUnit
> - SystemTap *optlib*
> - SystemVerilog
> - SVG *libxml*
> - TclOO (see :ref:`The new Tcl parser <tcl>`)
> - Thrift *peg/packcc*
> - TTCN
> - Txt2tags
> - TypeScript
> - Varlink *peg/packcc*
> - WindRes
> - XSLT v1.0 *libxml*
> - Yacc
> - Yaml *libyaml*
> - YumRepo
> - Zephir
> - Zsh
>
> Libxml2 is required to use the parser(s) marked with *libxml*.
> Libyaml is required to use the parser(s) marked with *libyaml*.
> pcre2 is required to use the parser(s) marked with *pcre2*.
>
> Fully improved parsers
>
> - C (see :ref:`The new C/C++ parser <cxx>`)
> - C++ (see :ref:`The new C/C++ parser <cxx>`)
> - Python (see :ref:`The new Python parser <python>`)
> - HTML (see :ref:`The new HTML parser <html>`)
> - Tcl (see :ref:`The new Tcl parser <tcl>`)
> - ITcl (see :ref:`The new Tcl parser <tcl>`)
> - Ant (rewritten with *libxml*)
> - PHP
> - Verilog/SystemVerilog
>
> - Automatically expanding CPreProcessor macros defined in the same input
> file (HIGHLY EXPERIMENTAL)
>
> Readtags
>
> - Printing line numbers with ``-n``
> - Filtering in readtags command
> - readtags has ability to find tag entries by name.
> - Sorting in readtags command
> - Listing pseudo tags with ``-D``
--
Take care. Thanks, Brian Inglis Calgary, Alberta, Canada
La perfection est atteinte Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer but when there is no more to cut
-- Antoine de Saint-Exupéry
[-- Attachment #2: ctags.cygport --]
[-- Type: text/plain, Size: 4290 bytes --]
#|/usr/bin/cygport
# ctags.cygport - ctags Cygwin package build control script definitions
NAME=ctags
VERSION=6.1.0
RELEASE=1
CATEGORY="Text Devel"
SUMMARY="Programming language source index and cross-reference"
DESCRIPTION="Generates an index (tags) file of language objects found in
source files.
The index makes it easy for text editors or other utilities to locate
the indexed items.
Ctags can also generate a cross reference file which lists information
about the various objects found in a set of language files in human
readable form.
Exuberant Ctags improves on ctags because it can find all types of
language tags, including macro definitions, enumerated values (values
inside enum{...}), function and method definitions, enum/struct/union
tags, external function prototypes, typedef names and variable
declarations.
Exuberant Ctags is far less likely to be fooled by code containing
preprocessor conditional constructs than ctags.
Exuberant ctags supports output of Emacs style TAGS files and can be
used to print out a list of selected objects found in source files.
Install ctags if you are going to use your system for C programming."
PROJECT=universal-$NAME
HOMEPAGE=https://github.com/$PROJECT/$NAME
HOMEPAGE=https://$NAME.io/
SRC_DIR=$PROJECT-$VERSION
SRC_URI=https://github.com/$PROJECT/$NAME/releases/download/v$VERSION/$SRC_DIR.tar.gz
PATCH_URI=
DEPEND="libiconv-devel libjansson-devel libpcre2-devel"
DEPEND+=" libxml2-devel libyaml-devel" # libseccomp-devel(Linux)
DEPEND+=" autoconf automake gcc-core make pkg-config python39-docutils"
BUILD_REQUIRES="$DEPEND"
unset DEPEND
CYGCONF_ARGS=--enable-etags
# --enable-coverage-gcov enable 'gcov' coverage testing tool [no]
# --enable-cross-guesses={conservative|risky} specify policy for cross-compilation guesses
# --enable-custom-config=FILE enable custom config file for site-wide defaults
# --enable-debugging enable debugging features
# --enable-dependency-tracking do not reject slow dependency extractors
# --disable-dependency-tracking speeds up one-time build
# --enable-etags enable the installation of links for etags
# --disable-extended-format disable extension flags; use original ctags file format only
# --disable-external-sort use internal sort algorithm instead of sort program
# --disable-iconv disable multibyte character encoding support
# --disable-json disable json support
# --disable-largefile omit support for large files
# --enable-macro-patterns use patterns as default method to locate
# macros instead of line numbers
# --disable-option-checking ignore unrecognized --enable/--with options
# --disable-pcre2 disable pcre2 support
# --disable-readcmd do not include readtags command during install
# --disable-seccomp disable seccomp support
# --enable-silent-rules less verbose build output (undo: "make V=1")
# --disable-silent-rules verbose build output (undo: "make V=0")
# --enable-static enable static linking (mainly for MinGW)
# --disable-threads build without multithread safety
# --enable-threads={isoc|posix|isoc+posix|windows} specify multithreading API
# --enable-tmpdir=DIR default directory for temporary files [ARG=/tmp]
# --disable-xml disable xml support
# --disable-yaml disable yaml support
# --enable-year2038 support timestamps after 2038
# --without-included-regex don't compile regex; default with recent-enough GNU C Library
# --with-rst2html=PATH Location of rst2html (auto)
# --with-rst2man=PATH Location of rst2man (auto)
# --with-sparse-cgcc use Sparse 'compiler wrapper' cgcc as C compiler [no]
LICENSE=GPL-2.0-or-later
LICENSE_SPDX="SPDX-License-Identifier: $LICENSE"
# SPDX-License-Identifier: GPL-2.0-or-later
LICENSE_URI=COPYING
DOCS="README.md NEWS.rst $LICENSE_URI docs/*.rst docs/*.svg"
CYGPORT_USE_UNSTABLE_API=1
src_unpack_hook() {
[ -r docs/news.rst ] && verbose mv -v docs/news.rst docs/newsL.rst
}
CYGWIN_MAINTAINER=Brian%20Inglis
CYGWIN_MAINTAINER_EMAIL=Brian.Inglis@SystematicSW.ab.ca
UPSTREAM_MAINTAINER=Masatake%20Yamato
UPSTREAM_MAINTAINER_EMAIL=yamato@RedHat.com
SUBJECT=${OSTYPE^}%20Package%20$NAME%20$VERSION
MAILTO=mailto:$UPSTREAM_MAINTAINER%20%3C$UPSTREAM_MAINTAINER_EMAIL%3E\
?from=$CYGWIN_MAINTAINER%20%3C$CYGWIN_MAINTAINER_EMAIL%3E\
\&subject=$SUBJECT\&body=$SUBJECT
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [ITA] ctags 6.1.0 - programming language source indexing and cross-reference tool
2024-06-15 15:10 ` Brian Inglis
@ 2024-06-17 15:40 ` Jon Turney
2024-06-17 18:50 ` Brian Inglis
0 siblings, 1 reply; 4+ messages in thread
From: Jon Turney @ 2024-06-17 15:40 UTC (permalink / raw)
To: Brian Inglis; +Cc: cygwin-apps
On 15/06/2024 16:10, Brian Inglis via Cygwin-apps wrote:
> [Forgot attachments]
>
> On 2024-06-14 23:20, Brian Inglis via Cygwin-apps wrote:
>> I would like to adopt ctags and update it to successor universal-ctags.
Thanks. I added this to your packages.
>> Description:
>> Generates an index (tag) file of language objects found in
>> source files.
>> The index makes it easy for text editors or other utilities to locate
>> the indexed items.
>> Ctags can also generate a cross reference file which lists information
>> about the various objects found in a set of language files in human
>> readable form.
>> Exuberant Ctags improves on ctags because it can find all types of
This should say "universal-ctags", right?
>> language tags, including macro definitions, enumerated values (values
>> inside enum{...}), function and method definitions, enum/struct/union
>> tags, external function prototypes, typedef names and variable
>> declarations.
>> Exuberant Ctags is far less likely to be fooled by code containing
>> preprocessor conditional constructs than ctags.
>> Exuberant ctags supports output of Emacs style TAGS files and can be
>> used to print out a list of selected objects found in source files.
>> Install ctags if you are going to use your system for C programming.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [ITA] ctags 6.1.0 - programming language source indexing and cross-reference tool
2024-06-17 15:40 ` Jon Turney
@ 2024-06-17 18:50 ` Brian Inglis
0 siblings, 0 replies; 4+ messages in thread
From: Brian Inglis @ 2024-06-17 18:50 UTC (permalink / raw)
To: cygwin-apps
On 2024-06-17 09:40, Jon Turney via Cygwin-apps wrote:
> On 15/06/2024 16:10, Brian Inglis via Cygwin-apps wrote:
>> [Forgot attachments]
>>
>> On 2024-06-14 23:20, Brian Inglis via Cygwin-apps wrote:
>>> I would like to adopt ctags and update it to successor universal-ctags.
> Thanks. I added this to your packages.
Thanks Jon once again
> This should say "universal-ctags", right?
This was directly converted from Fedora Rawhide spec, my normal approach to
adding or adopting and upgrading packages available in Fedora.
None of the other descriptions in distros (Debian, OpenSuSE) were any better,
nor were the source README.md, man page, or home page.
>>> Description:
>>> Generates an index (tag) file of language objects found in
>>> source files.
>>> The index makes it easy for text editors or other utilities to locate
>>> the indexed items.
>>> Ctags can also generate a cross reference file which lists information
>>> about the various objects found in a set of language files in human
>>> readable form.
>>> Exuberant Ctags improves on ctags because it can find all types of
>>> language tags, including macro definitions, enumerated values (values
>>> inside enum{...}), function and method definitions, enum/struct/union
>>> tags, external function prototypes, typedef names and variable
>>> declarations.
>>> Exuberant Ctags is far less likely to be fooled by code containing
>>> preprocessor conditional constructs than ctags.
>>> Exuberant ctags supports output of Emacs style TAGS files and can be
>>> used to print out a list of selected objects found in source files.
>>> Install ctags if you are going to use your system for C programming.
Rereading, that could be confusing, I'll pull up the variety of descriptions in
editor windows and see if I can pull together a better description for the
released version, including a wee bit more of the history about the connections.
--
Take care. Thanks, Brian Inglis Calgary, Alberta, Canada
La perfection est atteinte Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer but when there is no more to cut
-- Antoine de Saint-Exupéry
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-06-17 18:50 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-06-15 5:20 [ITA] ctags 6.1.0 - programming language source indexing and cross-reference tool Brian Inglis
2024-06-15 15:10 ` Brian Inglis
2024-06-17 15:40 ` Jon Turney
2024-06-17 18:50 ` Brian Inglis
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).