Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RFC] Which language do you want us to support? #1566

Closed
3 of 7 tasks
masatake opened this issue Oct 4, 2017 · 55 comments
Closed
3 of 7 tasks

[RFC] Which language do you want us to support? #1566

masatake opened this issue Oct 4, 2017 · 55 comments

Comments

@masatake
Copy link
Member

masatake commented Oct 4, 2017

This is /dev/null (The 2nd meaning of https://en.wiktionary.org/wiki//dev/null) where requests go. We never promise to write the parser you want. I will help you if you want to write a parser only if you will provide the result under 'GPLv2 or later.' I want to merge the result to our code base.

I would like you to write the document that explains the target language specification.
Much sample input files or information for large code base may help developers.

You can use thumb-up emoji.

For summarizing purpose, I will remove your comment.

For me(@masatake), the most of the languages I will use daily C, Python, Shell, Make, Automake, Autoconf, Asm, RPMspec, and Ld-script are available, and their parsers work well though there are
many points I have to improve.

Member in the organization, feel free updating this comment.

If you find an implementation including .ctags file for a language, you can report here as I did about asn1 parser. We can import the implementation if the author agrees distributing it in GPL v2 or later.
For importing, we need volunteers who helps us write test cases.

Don't report about issue about a client tool like vim here. ctags just generates tag files. It doesn't provide tree structured UI panel (or something.) If you need a help from ctags side to improve your client tool, open an issue.

My queue:

  • merging parsers submitted from Geany,
  • merging @b4n's new (mostly rewritten) Cobol parser
  • merging (and reworking) asn1 parser
  • improving javascript parser with the newly introduced symbol table
  • implementing unoidl parser or thrift parser in peg for study
  • rewriting java parser after extracting the token chain feature from Cxx parser as common rontines
  • looking for a volunteer who rewrites SystemVerilog parser
@masatake
Copy link
Member Author

masatake commented Oct 4, 2017

In #2105, we will merge Haskell parser developed at Geany project.


Haskell

Just a question those who are put "thumb-up". hasktags is not enough for you?

(The comments you put in this PR will be mesmerized by me and will be deleted to keep this PR simple.)


Merged the parser at Geany project. See #2712.

@masatake

This comment has been minimized.

@masatake
Copy link
Member Author

masatake commented Oct 4, 2017

Improving clojure

@masatake
Copy link
Member Author

masatake commented Oct 4, 2017

Scala


Some hints are in #654.

@masatake
Copy link
Member Author

masatake commented Oct 4, 2017

Vala

I myself have no chance to read vala code but it is interesting target to research how to write a parser utiliing lex (and yacc) in ctags.


@masatake is working on this parser. #2677

@masatake

This comment has been minimized.

@masatake
Copy link
Member Author

masatake commented Oct 4, 2017

lex & flex

@masatake

This comment has been minimized.

@baruch
Copy link

baruch commented Oct 15, 2017

please add dlang, there is an old work for that at https://github.com/snosov1/ctags-d


@barunch, Universal-ctags has d parser already though I don't know its quality. The patch you introduced in better than one in Universal-ctags? If the answer is yes, or there are an area we have to discuss, please open an issue. (added by @masatake)

@masatake
Copy link
Member Author

masatake commented Nov 8, 2017

xsd

@masatake
Copy link
Member Author

masatake commented Nov 8, 2017

asn1

We can import the changes in https://github.com/grogers0/ctags .
It uses setjmp/longjmp. We should not use the functions. Rewriting is needed.

2019-12-16: I got the permission to import the parser from the original author.

@gwerbin

This comment has been minimized.

@k-takata k-takata changed the title [RFC] Which lagnauge do you want us to support? [RFC] Which langauge do you want us to support? Mar 13, 2018
@k-takata k-takata changed the title [RFC] Which langauge do you want us to support? [RFC] Which language do you want us to support? Mar 13, 2018
@masatake
Copy link
Member Author

java10 (var keyword)

masatake added a commit to masatake/ctags that referenced this issue Apr 3, 2018
As requested in universal-ctags#1566 by @gwerbin.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
masatake added a commit to masatake/ctags that referenced this issue Apr 3, 2018
As requested in universal-ctags#1566 by @gwerbin.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
masatake added a commit to masatake/ctags that referenced this issue Apr 3, 2018
As requested in universal-ctags#1566 by @gwerbin.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
masatake added a commit to masatake/ctags that referenced this issue Apr 3, 2018
As requested in universal-ctags#1566 by @gwerbin.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
masatake added a commit to masatake/ctags that referenced this issue Apr 3, 2018
As requested in universal-ctags#1566 by @gwerbin.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
masatake added a commit to masatake/ctags that referenced this issue Apr 15, 2018
As requested in universal-ctags#1566 by @gwerbin.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
masatake added a commit to masatake/ctags that referenced this issue Apr 19, 2018
As requested in universal-ctags#1566 by @gwerbin.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
masatake added a commit to masatake/ctags that referenced this issue Apr 24, 2018
As requested in universal-ctags#1566 by @gwerbin.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
@hadrielk

This comment has been minimized.

@qingkong1998
Copy link

qingkong1998 commented Nov 12, 2018

swift

(Originally two langauges swift and objectivec are listed here. @mastake deleted objectivec.)
(Other client sides releated comments posted by @qingkong1998 are removed.)

@masatake masatake pinned this issue Dec 18, 2018
@vladak
Copy link

vladak commented Apr 14, 2020

terraform (oracle/opengrok#3108)

@masatake masatake mentioned this issue May 5, 2020
@masatake
Copy link
Member Author

masatake commented May 8, 2020

thrift

https://thrift.apache.org/docs/idl
https://raw.githubusercontent.com/apache/thrift/master/test/ThriftTest.thrift

@jajajasalu2
Copy link

ReasonML

@wuseal
Copy link

wuseal commented Jul 21, 2020

Kotlin, Please, Thank you


See #2769 (appended by @masatake).

@marcastel
Copy link

marcastel commented Aug 3, 2020

Kornshell (AST available)

@marcastel
Copy link

marcastel commented Aug 3, 2020

Pandoc (rather than simply Markdown... by using the Pandoc AST all tokens can be very simply extracted)

Which means that with one implementation you gain support for (see https://pandoc.org for full list):

  • Markdown & CommonMark
  • reStructuredText
  • AsciiDoc
  • LaTeX
  • Textile
  • txt2tags
  • HTML
  • roff man/ms
  • Texinfo
  • Docbook
  • JATS
  • TEI Simple
  • docx / odt / OpenDocument XML / pptx
  • various wiki formats
  • ...

Pandoc could either be an external binary dependency, or a shared Haskell library.

@TrentSe
Copy link

TrentSe commented Aug 21, 2020

Prolog would be great. I'm happy to assist (though not my area of expertise...).

@masatake
Copy link
Member Author

@TrentSe,

I'm happy to assist

There is only a few chance I can get this kind of offering.
I wrote how to assist me in the initial comment of this issue.

I would like you to write the document that explains the target language specification.
Much sample input files or information for large code base may help developers.

@TrentSe
Copy link

TrentSe commented Aug 21, 2020

Hey Masatake,

You're most welcome. I'd be attempting it myself without your help, so makes sense for us to team up!

I'll read up and get back to you...

Where would you like me to put the input files / language spec...?

@masatake
Copy link
Member Author

You're most welcome. I'd be attempting it myself without your help, so makes sense for us to team up!
Great!

Where would you like me to put the input files / language spec...?

Please, open a new issue for developing our prolog parser.

@TrentSe
Copy link

TrentSe commented Aug 25, 2020

Please, open a new issue for developing our prolog parser.

Thanks Masatake. Created as #2628.

@Shane-XB-Qian
Copy link

Shane-XB-Qian commented Mar 3, 2021

would you mind adding filter pattern for vim9 script?

  • def and export def
  • e.g export def Foo(bar: dict<any>, zzz: dict<any>): void end with enddef
  • or def Foo() etc.. end with enddef

// there would may have (export) 'class' also, but for now, those two.

// And actually/also :

var foo: dict<any> = {
  # something...
}
foo->extend({
  bar: function('s:bar', [foo])
})

then foo.bar() looks for now cannot find s:bar.

@Shane-XB-Qian
Copy link

Shane-XB-Qian commented Mar 4, 2021

vim9 means vim9 script, is a new version of vim script, compared to legacy one.
// so perhaps it can be thought as a new language? or if (you) donot think so, it's ok then let me open a 'new issue'.

// pls ignore the naming in the example, it's not regarding to lsp, but just a example. which for now, looks not supported by ctags to parse for vim script language.
// updated my comment as well, sorry if confused.

@masatake
Copy link
Member Author

masatake commented Mar 4, 2021

How different vim9 from vim8? script?
If it is very different, someone has to write a new parser for it.
If it is not , extending the parser for vim in ctags is enough for support vim9.

@Shane-XB-Qian
Copy link

perhaps for now just need to extend the current viml parser, just treat (export)\? def ... enddef as a function as well; as for another case in my above comment, not sure if it's easy to extend it.
// just for now, maybe in the future needed a new parser for it.

@masatake
Copy link
Member Author

masatake commented Mar 5, 2021

I studied the vim9 script a bit. It seems that the language is being developed and extended now.
We may need a new parser AND a new maintainer for the parser who updates the parser for catching up with the development of the language.

@gwerbin
Copy link

gwerbin commented Mar 18, 2021

I studied the vim9 script a bit. It seems that the language is being developed and extended now.
We may need a new parser AND a new maintainer for the parser who updates the parser for catching up with the development of the language.

I believe the Neovim developers have at least attempted to make a Vim9Script parser, although the language itself is a moving target. Maybe they can assist?

Moreover, there has been a lot of work recently in using Tree Sitter to generate incremental parsers. Perhaps the rate of parser development can be accelerated in general by incorporating Tree Sitter as a dependency?

@Shane-XB-Qian
Copy link

Shane-XB-Qian commented Mar 20, 2021

Neovim developers have at least attempted to make a Vim9Script parser

um, really? vim9 script mostly is to official vim, bram is developing the vim9; neovim was using lua, as i knew.

// i noticed @k-takata also is a 'member' of this repo, perhaps he would help you out this vim9 script parser......
// before vim9 ready/released, the earlier phase of vim9 script ctags parser should be helpful still, since some had been used vim9 script to dev something... so i proposed this.

@gwerbin
Copy link

gwerbin commented Mar 22, 2021

um, really? vim9 script mostly is to official vim, bram is developing the vim9; neovim was using lua, as i knew.

Yes, although it was more of a Sunday night side project than anything: https://www.youtube.com/watch?v=ajvBcJhH1Y4. Neovim itself is still committed to Lua.

@universal-ctags universal-ctags locked and limited conversation to collaborators Mar 27, 2021
@masatake masatake unpinned this issue May 5, 2021

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Projects
None yet
Development

No branches or pull requests