3

仕事で使用する独自の言語にいくつかのキーワードを定義しました。

{ "match": "\\b(util.tickettimelimit|util.user_ip|util.server_name|util.today)\\b",
  "name": "keyword.source.GTX2",
    "comment": "Tags"
}

補完ファイルもあります:

{
  "scope": "source.GTX2",

  "completions":
  [
    "util.server_name",
    "util.tickettimelimit",
    "util.today",
    "util.user_ip"
  ]
}

「util」と入力し始めると、正しいオートコンプリート オプションが表示されます。

オートコンプリートは正常に機能しています

しかし、「.」(ドット) を入力するとすぐにオートコンプリート オプションが消えます。

オートコンプリートが期待どおりに機能しない

この動作を変更する方法はありますか? キーワードを全体として評価し、ドットを無視したいだけです。

ありがとう!

4

5 に答える 5

2

@Ashishがほのめかしていると思うのはword_separators設定です。構文固有の設定を作成する必要があります ( Preferences -> Settings - More -> Syntax Specific - User)。word_separatorsドットを削除したエントリを作成します(デフォルトの設定をベースとしてコピーします)。これにより、必要な動作が得られますが、注意すべき点がいくつかあります。明らかに、ドットは、いくつかの動作を変更する単語区切りとして扱われません。

例としてJavaを使用します。variablefooがあり、何らかの methodを使用するとbar、入力でき、完了として表示されます。セパレータとしてのドットがないと、これは表示されません。foo.bbar

もう 1 つの例として、単語を選択する場合がわかりやすいでしょう。ctrl/cmd + d を使用して単語を選択すると、単語区切りで区切られた単語が選択されます。したがって、私が持っていたfoo.ba|r場合、| カーソル位置を表し、ctrl/cmd+d を使用して選択しますbar。単語区切りとしてドットを削除すると、foo.bar選択されます。

何か明確にできることがあれば教えてください。

于 2013-03-28T21:41:38.347 に答える
2

私はできる限り調べましたが、オートコンプリート コードは実行可能ファイル自体に埋め込まれているようです (少なくとも Windows では、まだ Mac をチェックしていません) .py。そのため、オートコンプリートがどのように実行されるかのパラメーターも表示されません。デフォルトのPackages/Default/Preferences.sublime-settingsファイルを調べたところ、オートコンプリートに関連するオプションがいくつかありますが、探しているものに関連するものはありません。同じディレクトリ内のファイルを調べながらDefault (Windows).sublime-keymap、次を追加してみました。

{ "keys": ["."], "command": "hide_auto_complete", "context":
    [
        { "key": "auto_complete_visible", "operator": "equal", "operand": false }
    ]
},

しかし、残念ながらうまくいきませんでした。そこには多くのauto_completeコマンドがあり、これが最も有望に見えましたが、残りは試していません。

気の利いたSublimeCodeIntelプラグイン ( Package Controlからも入手可能)のソース ファイルと構成ファイルを徹底的に調べたわけではないので、そこにオプションが見つかる可能性があります。SCI をオーバーライドしないように、最初に組み込みのオートコンプリート機能を完全に無効にする必要があります。

ですから、今のところ、できることはあまりないと思います。いつでも機能リクエストを残して、それがSublime Text 3になるかどうかを確認したり、 Sublime Text フォーラムでスレッドを検索/開いて、他の誰かが提案を持っているかどうかを確認したりできます。幸運を!

于 2013-03-28T18:02:40.850 に答える
0

押さないでください。(ドット) それ以外の場合は、リストを再度表示できるように、ドットの後に少なくとも 1 文字を入力する必要があります。ブラケットまたはドットを使用すると、ユーザーが入力を完了したことを Sublime Text 2 に伝えます。

例:入力するとfor崇高にドロップダウンリストが表示されますが、入力するとfor(リストが消えます。

于 2013-03-28T14:25:53.630 に答える
0

[設定] > [設定] - [ユーザー] をクリックし、次をコピーして貼り付けます。

// Characters that are considered to separate words – does not include periods.
// Place comma at the end of the line if there are multiple keybindings.
"word_separators": "/\\()\"‘-:,;~!@#$%^&*|+=[]{}`~?"

このウェブページから: http://tomschenkjr.net/using-sublime-text-2-for-r/

于 2014-02-28T21:35:39.957 に答える