#4503·ctags

C#: record type members are not tagged

Author: jha-namanCreated Sep 17, 2026Updated Sep 17, 2026

The name of the parser: C Sharp

The command line you used to run ctags:

$ ctags --options=NONE -f '-' record_class_vs_record.cs

The content of input file:

cs
public class MyClass {
		public int Field;
		public void Method;
}

public record MyRecord {
		public int Field;
		public void Method;
}

The tags output you are not satisfied with:

ctags: Notice: No options will be read from files or environment
Field	record_class_vs_record.cs	/^		public int Field;$/;"	f	class:MyClass
Method	record_class_vs_record.cs	/^		public void Method;$/;"	f	class:MyClass
MyClass	record_class_vs_record.cs	/^public class MyClass {$/;"	c
MyRecord	record_class_vs_record.cs	/^public record MyRecord {$/;"	p

The tags output you expect: Something along these lines

Field	record_class_vs_record.cs	/^		public int Field;$/;"	f	class:MyClass
Field	record_class_vs_record.cs	/^		public int Field;$/;"	f	record:MyRecord
Method	record_class_vs_record.cs	/^		public void Method;$/;"	f	class:MyClass
Method	record_class_vs_record.cs	/^		public void Method;$/;"	f	record:MyRecord
MyClass	record_class_vs_record.cs	/^public class MyClass {$/;"	c
MyRecord	record_class_vs_record.cs	/^public record MyRecord {$/;"	r

The record is currently being tagged as being of kind p (property) which also seems suspect. Please ignore that part if it is intentional.

The version of ctags:

$ ctags --version
Universal Ctags 6.2.1, Copyright (C) 2015-2025 Universal Ctags Team
Universal Ctags is derived from Exuberant Ctags.
Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert
  Compiled: Oct 25 2025, 13:15:24
  URL: https://ctags.io/
  Output version: 1.1
  Optional compiled features: +wildcards, +regex, +gnulib_fnmatch, +gnulib_regex, +iconv, +option-directory, +xpath, +json, +interactive, +yaml, +case-insensitive-filenames, +packcc, +optscript, +pcre2

How do you get ctags binary: Installed via Homebrew