HerringtonDarkholme / yats.vim

Yet Another TypeScript Syntax: The most advanced TypeScript Syntax Highlighting in Vim
Vim License
648 stars 68 forks source link

No tags with typescript.ctags (universal-ctags) #151

Open Rom888 opened 4 years ago

Rom888 commented 4 years ago

I have universal-ctags installed on my system, and it looks like it can't find any tags in typescript.

$ cat ttest.ts
import * as puppeteer from 'puppeteer';

export async function get1Id(page: puppeteer.Page): Promise<string> {
  const dataStr = '11';
  return dataStr;
}

async function main(): Promise<void> {
  console.log('ddd');
}
$ ctags --options=/home/rom/.vim/bundle/yats.vim/ctags/typescript.ctags ttest.ts

$ cat tags
!_TAG_FILE_FORMAT   2   /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED   1   /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_OUTPUT_MODE   u-ctags /u-ctags or e-ctags/
!_TAG_PROGRAM_AUTHOR    Universal Ctags Team    //
!_TAG_PROGRAM_NAME  Universal Ctags /Derived from Exuberant Ctags/
!_TAG_PROGRAM_URL   https://ctags.io/   /official site/
!_TAG_PROGRAM_VERSION   0.0.0   //

but it works with ctags from https://github.com/majutsushi/tagbar/wiki#typescript -> https://github.com/jb55/typescript-ctags/blob/master/.ctags

$ ctags --options=/home/rom/.ctags.d/typescript.ctags ttest.ts
ctags: Warning: Don't reuse the kind letter `c' in a language typescript (old: "classes", new: "modules")
ctags: Warning: Don't reuse the kind letter `v' in a language typescript (old: "variables", new: "varlambdas")
$ cat tags
!_TAG_FILE_FORMAT   2   /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED   1   /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_OUTPUT_MODE   u-ctags /u-ctags or e-ctags/
!_TAG_PROGRAM_AUTHOR    Universal Ctags Team    //
!_TAG_PROGRAM_NAME  Universal Ctags /Derived from Exuberant Ctags/
!_TAG_PROGRAM_URL   https://ctags.io/   /official site/
!_TAG_PROGRAM_VERSION   0.0.0   //
get1Id  ttest.ts    /^export async function get1Id(page: puppeteer.Page): Promise<string> {$/;" f
main    ttest.ts    /^async function main(): Promise<void> {$/;"    f

Tagbar starts to work if I replace typescript.ctags from https://github.com/jb55/typescript-ctags/blob/master/.ctags

cp /home/rom/.ctags.d/typescript.ctags /home/rom/.vim/bundle/yats.vim/ctags/

Do you have any idea how to fix it more elegantly?

masatake commented 4 years ago

/home/rom/.ctags.d/typescript.ctags is not needed. The latest u-ctags has built-in TypeScript parser.