Skip to content
This repository was archived by the owner on Jan 6, 2026. It is now read-only.
This repository was archived by the owner on Jan 6, 2026. It is now read-only.

Support User defined literals #17

Open

Description

@osyo-manga

Twitter でそういう話がでていたので立てておきます。

[目的]

以下のように C++11 で追加されたユーザ定義リテラルもリテラルとして一緒に
ハイライトを行いたい。

// _user_defined_literal をリテラルとしてハイライトしたい
1234_user_defined_literal
"homu"_user_defined_literal

Vim のシンタックスはあまり詳しくないのですが、とりあえず、既存のシンタックスの末尾に `\w*` を追加してみました。
syn match   cNumber     display contained "\d\+\(\w*\)\>"
syn match   cNumber     display contained "0x\x\+\(\w*\)\>"
syn match   cOctal      display contained "0\o\+\(\w*\)\>" contains=cOctalZero
syn match   cFloat      display contained "\d\+\.\d*\(\w*\)"
syn region cCppString   start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"\w*+ end='$' contains=cSpecial,cFormat,@Spell

いまは『数値+リテラル』を1つのシンタックスとして定義する事を考えています。
上記のコードを https://github.com/vim-jp/cpp-vim/blob/master/syntax/cpp.vim#L38 あたりに追加すればよさそう?
Vim のシンタックスに詳しい人誰か。

Activity

  1. mattn commented on Mar 15, 2014

    @mattn
    Member

    リテラルとして扱うのではなく、どうせならユーザ定義リテラルだと分かる様にしたいです。

  2. rhysd commented on Mar 15, 2014

    @rhysd
    Contributor

    反応遅くなってすみません.

    とりあえず上ので実装して試してみました.
    https://github.com/rhysd/cpp-vim/tree/user-defined-literals

    ss
    少し試した感じだと,ちゃんと動いているっぽいです.

    @mattn
    その場合,ユーザ定義リテラル用のハイライトを定義して,nextgroup を既存のリテラルのハイライトに定義するのが良いんでしょうか?
    ハイライト設定はあまり書いたことが無いので,どうやるのが定石なのか分からないです…

  3. mattn commented on Mar 15, 2014

    @mattn
    Member

    ですです > nextgroup

  4. rhysd commented on Mar 15, 2014

    @rhysd
    Contributor

    うーん,現状 nextgroup で単純にやろうとすると,数値リテラルはすべて \> で終わっているので,45min をハイライトできないですね…
    何か良い方法あるでしょうか?

  5. artditel commented on Nov 16, 2015

    @artditel

    Hi all, any plans to add literals highlight into master?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions