home.social

#ctags — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #ctags, aggregated by home.social.

  1. Is there a good `.ctags` content with `--regex-php` that recognizes enums and their cases? It's not included in the latest universal ctags 6.2, and my regex tests have all failed so far. Perhaps someone else has had more success with this.

    My current test `.ctags` looks like this (it's obviously wrong haha):

    ```
    --regex-php=/enum[[:space:]]+([a-zA-Z_][a-zA-Z0-9_]*)[[:space:]]*/\1/e,enum/
    --regex-php=/case[[:space:]]+([a-zA-Z_][a-zA-Z0-9_]*)[[:space:]]*;/\1/case/
    ```

    And it should find enums with the following structure:

    ```php
    enum Foo
    {
    case A;
    case B;
    }
    ```

    And of course also backed enums:

    ```php
    enum Foo: string
    {
    case A = 'a';
    case B = 'b';
    }
    ```

    #ctags #uctags #UniversalCtags #php

  2. @nemith Thanks for the tip. I have worked with #Neovim for a long time and am therefore quite familiar with it. However, despite having fewer plugins, it has always been considerably slower than #Vim9. Additionally, the LSP architecture is painfully slow and dependent on other language servers running in the background and listening on UNIX sockets. This is acceptable with gopls. Unfortunately, 90% of my work still involves #PHP and all the PHP language servers are poor. #Intelephense, which I purchased, is even proprietary and was often unable to validate my licence.
    I was so frustrated that I gave up on Neovim because it offered me no added value compared to Vim 9. Moreover, 89% of what LSPs do can also be provided by #ctags, without the need for a buggy and slow Node.js Language Server.

  3. Splitting the tag files into project and vendor ones and including both as tag files increased performance enormously!

    The amount of data is the same, but it's somehow ten times faster. Before, it took about ten to fifteen seconds to `tselect` something; now, it takes less than one second.

    ```vim
    set tags=./tags;,./vendor.tags;
    ```

    #vim #ctags #UniversalCtags #php

  4. Is the Vim (9.1) tag search slow for you too? This only happens with huge projects that have many PHP vendor dependencies, which can occur quickly with PHP. How do you handle it? Does Vim understand multiple tag files? Can it be multi-threaded somehow?

    #vim #vim9 #ctag #ctags #UniversalCtags #PHP

  5. Is the Vim (9.1) tag search slow for you too? This only happens with huge projects that have many PHP vendor dependencies, which can occur quickly with PHP. How do you handle it? Does Vim understand multiple tag files? Can it be multi-threaded somehow?

    #vim #vim9 #ctag #ctags #UniversalCtags #PHP

  6. Is the Vim (9.1) tag search slow for you too? This only happens with huge projects that have many PHP vendor dependencies, which can occur quickly with PHP. How do you handle it? Does Vim understand multiple tag files? Can it be multi-threaded somehow?

    #vim #vim9 #ctag #ctags #UniversalCtags #PHP

  7. Is the Vim (9.1) tag search slow for you too? This only happens with huge projects that have many PHP vendor dependencies, which can occur quickly with PHP. How do you handle it? Does Vim understand multiple tag files? Can it be multi-threaded somehow?

    #vim #vim9 #ctag #ctags #UniversalCtags #PHP

  8. Is the Vim (9.1) tag search slow for you too? This only happens with huge projects that have many PHP vendor dependencies, which can occur quickly with PHP. How do you handle it? Does Vim understand multiple tag files? Can it be multi-threaded somehow?

    #vim #vim9 #ctag #ctags #UniversalCtags #PHP

  9. Has anyone had good experiences with (universal) ctags for PHP? Looking for a solid, non-plugin, vim-native LS alternative for vim (9.1).

    I tried `ctags -R --language-force=PHP --php-kinds=+c-f --fields=+n` as well as setting tags `set tags=./tags;,tags` but vim can't jump to function declarations by tag.

    #vim #vim9 #ctags #UniversalCtags #php

  10. Стилистический Анализатор: Синхронизация Объявлений и Определений static Функций

    Представлена утилита проверяльщик, что последовательность определения static функций совпадает с последовательностью объявляения static функций.

    habr.com/ru/articles/846020/

    #static #ctags #sed #awk #cmp #code_style

  11. Стилистический Анализатор: Синхронизация Объявлений и Определений static Функций

    Представлена утилита проверяльщик, что последовательность определения static функций совпадает с последовательностью объявляения static функций.

    habr.com/ru/articles/846020/

    #static #ctags #sed #awk #cmp #code_style

  12. Стилистический Анализатор: Синхронизация Объявлений и Определений static Функций

    Представлена утилита проверяльщик, что последовательность определения static функций совпадает с последовательностью объявляения static функций.

    habr.com/ru/articles/846020/

    #static #ctags #sed #awk #cmp #code_style

  13. Стилистический Анализатор: Синхронизация порядка объявлений и определений функций

    У нас в организации есть обязательное правило оформления исходников, которое звучит так: Порядок объявления С-функций должен совпадать с порядком определения С-функций. В этом тексте представлен алгоритм работы консольной программы, которая автоматически выявляет нарушения этого странного правила.

    habr.com/ru/articles/844436/

    #ctags #awk #gawk #sed #cygwin #cmp #gcc #статический_анализ #стилистический_анализ #static_analysis

  14. Стилистический Анализатор: Синхронизация порядка объявлений и определений функций

    У нас в организации есть обязательное правило оформления исходников, которое звучит так: Порядок объявления С-функций должен совпадать с порядком определения С-функций. В этом тексте представлен алгоритм работы консольной программы, которая автоматически выявляет нарушения этого странного правила.

    habr.com/ru/articles/844436/

    #ctags #awk #gawk #sed #cygwin #cmp #gcc #статический_анализ #стилистический_анализ #static_analysis

  15. Стилистический Анализатор: Синхронизация порядка объявлений и определений функций

    У нас в организации есть обязательное правило оформления исходников, которое звучит так: Порядок объявления С-функций должен совпадать с порядком определения С-функций. В этом тексте представлен алгоритм работы консольной программы, которая автоматически выявляет нарушения этого странного правила.

    habr.com/ru/articles/844436/

    #ctags #awk #gawk #sed #cygwin #cmp #gcc #статический_анализ #стилистический_анализ #static_analysis

  16. @here_for_code @evilmartians I like #standardrb because it uses #RuboCop but only implements basic and non-controversial rules that help with linting.

    I occasionally use #RubyMine for the (putatively) automated refactorings and to play around with #AI integrations, but I'm a #CLI guy and don't find IDE's very intuitive. I use heavily customized #vim, #ack or #thesilversearcher, and #ctags for day to day stuff. It just seems faster to me, but that could just be muscle memory and habit. 😄

  17. I’ve been using with for a couple months now. It’s been a complete game changer to update my journal with fast completions and code navigation. It works out of the box with my editor of choice /#vim and also with other editors, sometimes with a plugin (, …).

    I’m now sharing the ctags configuration, as this could benefit others: cj.rs/ledger-ctags/

    Please let me know if you have issues or if some things are unclear!

    🏦

    🧵1/4

  18. is a header file generator.

    Makeheaders scans C or C++ source files for public definitions and creates header files containing prototypes for found definitions. Makeheaders enables integration of both the interface and implementation into a single file which is automatically expanded into the two files. Makeheaders is very fast, works with make, and can work as .

    Website 🔗️: hwaci.com/sw/mkhdr/

  19. is a implementation for many languages.

    Universal Ctags examines a source code file for any symbols (variables, types, functions) and outputs a tagged list of those symbols for use in an editor like or . Universal Ctags can parse many languages, including , , , and . Universal Ctags supports various output formats.

    Website 🔗️: ctags.io/

    apt 📦️: universal-ctags