0

VScode スニペットで TM_DIRECTORY 変数の一部を選択したい。コードスニペット内のファイルを選択Tests\Setupしたいということです。d:\Projects\Hakhsin\hakhsin\tests\Setupこれを見てください:

// On snippet file
"PHP Class": {
        "scope": "",
        "prefix": ["phpClass"],
        "body": [
            "<?php\n\nnamespace ${TM_DIRECTORY/(?<=(?:[\w:\\]hakhsin\\)).+(?=\\)//};\n\nclass ${TM_FILENAME_BASE} {\n\t$2\n}"
        ],
        "description": "New PHP Class"
    },

そして、私はこの結果を得たいです:


namespace Tests\Setup;

class StorageFactory {

}

しかし、私はこの結果を得ます:

<?php

namespace d:\Projects\Hakhsin\hakhsin\tests\Setup;

class StorageFactory {

}
4

2 に答える 2

0

スニペット変換で他の変数内で変数を使用できるようには見えません。

あなたのコードよりも「動的」ですが、完全ではないこのコードを試すことができます。

"${TM_DIRECTORY/([^\\\\]*\\\\){4}(.*)/${2:/capitalize}/}",

{4}つまり、必要な部分の前にディレクトリ構造に4つのセグメントがある場合です。セグメントd:\Projects\Hakhsin\hakhsin\tests\Setupは、、、d:\およびです。その数のセグメントが既知であり、私が示したスニペットよりも安定している場合、うまく機能します。Projects\Hakhsin\hakhsin\

これらのセグメントの数がプロジェクト内で異なるとは思えませんが、プロジェクト間で非常にうまくいく可能性があります{x}.その場合は、プロジェクトごとにアイテムを変更する必要があります.

于 2019-07-31T14:31:02.030 に答える