プレフィックスなしで会社の完成を始めることは可能ですか?


8

オートコンプリートは、CSSを記述して、特定のプロパティで使用可能なオプションを確認する場合に特に便利です。会社はcompany-minimum-prefix-length、オプションの提供を開始する前に入力する必要がある文字数を制御するために提供します。

ただし、文字なしで補完したいので、これを取得します。

会社モードのcssの完了

現在、私はこれを次のいずれかによってのみ取得できます:

  1. 明示的に呼び出す M-x company-complete
  2. の設定(setq company-minimum-prefix-length 0)、1文字の入力、バックスペースなどa DEL

これは可能ですか?理想的には、プロパティとその値の両方に対してそれを行うことができます。


しかし問題は、補完が常にオンになることです。プロパティと、少なくともセレクターではオンになります。非常に多くのプロパティがあり、接頭辞なしの補完はあまり役に立ちません。画面スペースを占有するだけです。では、状況依存の補完プロパティが必要ですか?
PythonNut

はい、私はそれが状況に応じていると思います:私は自己挿入コマンドにスペースで完了をトリガーするようにアドバイスすることを考えましたが、それは値のためだけに役立ちます。プロパティの場合でも、プレフィックスなしの補完は便利だと思います。(私はCSSをもっと学び、ドロップダウンはスクロールバーで10以上を示しています)。
Wilfred Hughes

「1つの文字とバックスペースを入力する」これはなぜですか。でcompany-minimum-prefix-length0に設定すると、あなたはすでにスペースを入力した後に完了のポップアップが表示されます。ただし、Enterキーを押した後ではありません。
ドミトリー

@Dmitry私はその行動を見ていません。使用している会社のバージョンは何ですか?
Wilfred Hughes

@WilfredHughesマスター。
ドミトリー

回答:


5

私はTABを使用して、そのような場合にオンデマンドで会社モードをトリガーします-CSSの例では問題なく機能します。また、TABを使用してインデントします(にtab-always-indent設定complete)。indent-for-tab-commandここで説明されている構成を使用して、組み込みの会社を統合できます:https : //github.com/company-mode/company-mode/issues/94#issuecomment-40884387

リンクされたgithubコメントからの関連コードは次のとおりです。

(define-key company-mode-map [remap indent-for-tab-command]
  'company-indent-for-tab-command)

(setq tab-always-indent 'complete)

(defvar completion-at-point-functions-saved nil)

(defun company-indent-for-tab-command (&optional arg)
  (interactive "P")
  (let ((completion-at-point-functions-saved completion-at-point-functions)
        (completion-at-point-functions '(company-complete-common-wrapper)))
    (indent-for-tab-command arg)))

(defun company-complete-common-wrapper ()
  (let ((completion-at-point-functions completion-at-point-functions-saved))
    (company-complete-common)))

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.