public inbox for cygwin-apps@cygwin.com
 help / color / mirror / Atom feed
* [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).