Re: dmdtags 1.0.0: an accurate tag generator for D source code
On Friday, 27 August 2021 at 21:38:58 UTC, Paul Backus wrote: `dmdtags` is a tags file generator for D source code that uses the DMD compiler frontend for accurate parsing. This release supports 100%-accurate parsing of arbitrary D code (tested on DMD and Phobos sources), as well as the most commonly-used command line options, `-R`, `-o`, and `-a`. The generated tags file has been tested for compatibility with Vim and is compliant with the [POSIX standard for `ctags`][posix], so any editor with `ctags` support should be able to use it. [posix]: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/ctags.html ### What? A _tags file_ is a lightweight plain-text index of the symbols in a project. Editors that support tags files, such as Vim and Emacs, can use this index to help with things like project navigation and tab completion. A _tags file generator_ is, as you might expect, a program that reads source code and generates a tags file with entries for the symbols in that code. ### Why? [`universal-ctags`][uctags], the current most-popular and best-maintained tags file generator, claims support for many programming languages, including D. However, its D parser is not well-maintained, and it often excludes large numbers of symbols from its output due to parsing failures. Because `dmdtags` uses the DMD frontend for parsing, its results will always be accurate and up-to-date. For pure D projects, it can be used as a replacement for `universal-ctags`. For mixed-language projects, it can be used together with other tag generators with the `--append` option. [uctags]: https://ctags.io ### Where? * On Github: https://github.com/pbackus/dmdtags * On Dub: https://code.dlang.org/packages/dmdtags ``` # dmdtags -R ./source/ -o - !_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ App ./source/ui/app.d 13;" T App ./source/ui/app.d 15;" a App ./source/ui/app.d 19;" T App ./source/ui/app.d 21;" s __ctor ./source/ui/app.d 27;" f __ctor ./source/ui/app.d 30;" f _result ./source/ui/app.d 23;" v app ./source/ui/app.d 1;"M defaultEventLoop./source/ui/app.d 48;" f defaultInitFunc ./source/ui/app.d 62;" T defaultInitFunc ./source/ui/app.d 62;" f window ./source/ui/app.d 26;" v ``` Perfecto! i can use it in Sublime Text editor... Need to thinks, how it will be implemented...
Re: dmdtags 1.0.0: an accurate tag generator for D source code
On 8/27/21 2:38 PM, Paul Backus wrote: > `dmdtags` is a tags file generator for D source code that uses the DMD > compiler frontend for accurate parsing. Thanks! I had stopped using tags files with Emacs for the reasons you give. With this, I will be more efficient. :) And, I will be a happy puppy once Vladimir Panteleev finishes his D mode for Emacs, which he is writing from scratch. Ali
Re: dmdtags 1.0.0: an accurate tag generator for D source code
On Friday, 27 August 2021 at 22:45:15 UTC, WebFreak001 wrote: I'm just worried about how the memory usage will grow with this, considering dmd never frees. Maybe I should make it run as external tool instead of a library so the OS cleans up, but for that get a performance penalty especially on Windows. `dmdtags` does not run in the background, so any memory it uses will be freed at process exit, as soon as it has finished writing the tags file. And because it does not do any semantic analysis, only parsing, it does not use much memory while running in the first place. According to `/usr/bin/time`, on my personal machine, using `dmdtags` to generate a tags file for all of Phobos takes slightly less than 1 second and has a peak resident set size of around 100MB.
Re: dmdtags 1.0.0: an accurate tag generator for D source code
On Friday, 27 August 2021 at 22:01:59 UTC, Dennis wrote: On Friday, 27 August 2021 at 21:38:58 UTC, Paul Backus wrote: Editors that support tags files, such as Vim and Emacs, can use this index to help with things like project navigation and tab completion. Cool! Now I'll have to look if I can make this work with Visual Studio Code, since code-d which uses Dsymbol tends to be unreliable, and this looks ideal for Phobos / Druntime symbol completion. actually it uses D-Scanner and should be a fairly easy drop-in replacement. I'm just worried about how the memory usage will grow with this, considering dmd never frees. Maybe I should make it run as external tool instead of a library so the OS cleans up, but for that get a performance penalty especially on Windows.
Re: dmdtags 1.0.0: an accurate tag generator for D source code
On Friday, 27 August 2021 at 21:38:58 UTC, Paul Backus wrote: Editors that support tags files, such as Vim and Emacs, can use this index to help with things like project navigation and tab completion. Cool! Now I'll have to look if I can make this work with Visual Studio Code, since code-d which uses Dsymbol tends to be unreliable, and this looks ideal for Phobos / Druntime symbol completion.
dmdtags 1.0.0: an accurate tag generator for D source code
`dmdtags` is a tags file generator for D source code that uses the DMD compiler frontend for accurate parsing. This release supports 100%-accurate parsing of arbitrary D code (tested on DMD and Phobos sources), as well as the most commonly-used command line options, `-R`, `-o`, and `-a`. The generated tags file has been tested for compatibility with Vim and is compliant with the [POSIX standard for `ctags`][posix], so any editor with `ctags` support should be able to use it. [posix]: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/ctags.html ### What? A _tags file_ is a lightweight plain-text index of the symbols in a project. Editors that support tags files, such as Vim and Emacs, can use this index to help with things like project navigation and tab completion. A _tags file generator_ is, as you might expect, a program that reads source code and generates a tags file with entries for the symbols in that code. ### Why? [`universal-ctags`][uctags], the current most-popular and best-maintained tags file generator, claims support for many programming languages, including D. However, its D parser is not well-maintained, and it often excludes large numbers of symbols from its output due to parsing failures. Because `dmdtags` uses the DMD frontend for parsing, its results will always be accurate and up-to-date. For pure D projects, it can be used as a replacement for `universal-ctags`. For mixed-language projects, it can be used together with other tag generators with the `--append` option. [uctags]: https://ctags.io ### Where? * On Github: https://github.com/pbackus/dmdtags * On Dub: https://code.dlang.org/packages/dmdtags
Re: Beerconf August 2021
On 8/14/21 5:54 PM, Steven Schveighoffer wrote: ## Wait, I have something important to say! If you have some topic you want to reserve time for, let me know. So far nobody has taken up this offer, but it's still here, keeps coming back every month. You can have a nice audience to present some project you're working on in D, or some other topic you want to talk about. Just send me an email to schveiguy at gmail. Stefan Koch has submitted the first ever Beerconf talk. After a rigorous application process (asked me on slack), I have decided to accept it! It will take place on Saturday at 17:00 UTC, on the jitsi stream. The talk is titled "Take a look at yourself" and is a discussion on his upcoming `core.reflect` library that he has been posting about in the forums. The talk will be about 30 minutes, and of course, the frivolity will not end after that, we hope to see you all there! The details for joining Beerconf will be posted tomorrow. If anyone has any talk or discussion they want the floor for, just let me know. Remember that submissions for [DConf Online 2021](https://dconf.org) are due by Sept 5 (a week from Sunday), this is good practice! Cheers! -Steve
Re: D Summer School v3
On Friday, 27 August 2021 at 07:45:42 UTC, M.M. wrote: On Thursday, 26 August 2021 at 14:33:25 UTC, Mike Parker wrote: Very nice event and blog. Thanks! I wonder about the hackathon: did you, Razvan et al., pre-selected a list of bugzilla issues to work on? We do have a keyword, "bootcamp", for simpler issues, but some of those could be fairly complicated, therefore, we internally selected a list of 10-20 issues that we considered trivial. About the intimidacy of contributing bugfixes: it could be worth trying to demonstrate during a lecture how fixing such an PR actually works, including the (technical) process of submitting a PR, with all the comments, naming conventions, etc. That's an interesting proposal. It could potentially benefit both future DSS students and first time contributors. Thanks for the suggestion. Cheers, RazvanN
Re: D Summer School v3
On Thursday, 26 August 2021 at 14:33:25 UTC, Mike Parker wrote: Through much of July, Razvan Nitu and Eduard Staniloiu organized and carried out their third D Summer School at University POLITEHNICA of Bucharest. This time, they did several things differently, leading to their biggest event yet. They've provided some details on the blog: https://dlang.org/blog/2021/08/26/d-summer-school-v3/ Reddit: https://www.reddit.com/r/d_language/comments/pc0ppo/d_summer_school_v3/ Very nice event and blog. I wonder about the hackathon: did you, Razvan et al., pre-selected a list of bugzilla issues to work on? About the intimidacy of contributing bugfixes: it could be worth trying to demonstrate during a lecture how fixing such an PR actually works, including the (technical) process of submitting a PR, with all the comments, naming conventions, etc.