Có thể bắt đầu hoàn thành công ty mà không cần tiền tố?


8

Tự động hoàn thành đặc biệt hữu ích khi viết CSS, để xem các tùy chọn có sẵn cho một thuộc tính nhất định. Công ty cung cấp company-minimum-prefix-lengthđể kiểm soát số lượng ký tự tôi phải nhập trước khi bắt đầu cung cấp tùy chọn.

Tuy nhiên, tôi muốn hoàn thành mà không có bất kỳ nhân vật nào, vì vậy tôi nhận được điều này:

chế độ công ty hoàn thành css

Hiện tại, tôi chỉ có thể có được điều này bằng một trong hai cách sau:

  1. Gọi một cách rõ ràng M-x company-complete
  2. Cài đặt (setq company-minimum-prefix-length 0), nhập một ký tự đơn và backspace, ví dụ a DEL.

Điều này có thể không? Lý tưởng nhất là tôi có thể làm điều đó cho cả hai thuộc tính và giá trị của chúng.


Vấn đề, mặc dù là hoàn thành sẽ luôn luôn được bật. Nó sẽ được bật cho các thuộc tính và ít nhất là các bộ chọn. Có rất nhiều thuộc tính, việc hoàn thành mà không có tiền tố sẽ không hữu ích lắm và sẽ chỉ chiếm không gian màn hình. Vì vậy, bạn muốn các thuộc tính hoàn thành nhạy cảm bối cảnh?
PythonNut

Vâng, tôi cho rằng nó theo ngữ cảnh: Tôi nghĩ về việc tư vấn lệnh tự chèn để kích hoạt hoàn thành trên không gian, nhưng điều đó chỉ giúp cho các giá trị. Mặc dù tôi nghĩ rằng hoàn thành mà không có tiền tố là hữu ích, ngay cả đối với các thuộc tính. (Tôi tìm hiểu thêm CSS và trình đơn thả xuống hiển thị hơn 10 với thanh cuộn).
Wilfred Hughes

"Gõ một ký tự và backspace" Tại sao lại thế này? Với company-minimum-prefix-lengthcài đặt là 0, bạn sẽ thấy cửa sổ bật lên hoàn thành sau khi nhập không gian. Không phải sau khi nhấn trở lại, mặc dù.
Dmitry

@Dmitry Tôi không thấy hành vi đó. Phiên bản nào của công ty bạn đang sử dụng?
Wilfred Hughes

@WilfredHughes chủ.
Dmitry

Câu trả lời:


5

Tôi sử dụng TAB để kích hoạt chế độ công ty theo yêu cầu trong trường hợp như vậy - nó hoạt động tốt trong ví dụ CSS của bạn. Tôi cũng sử dụng TAB để thụt lề ( tab-always-indentđặt thành complete). Bạn có thể tích hợp công ty với tích hợp indent-for-tab-commandsử dụng cấu hình được mô tả tại đây: https://github.com/company-mode/company-mode/issues/94#issuecomment-40884387

Đây là mã có liên quan từ nhận xét github được liên kết:

(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)))

3

Theo các phiên bản gần đây company, đây là cách để đi:

(define-key company-mode-map [remap indent-for-tab-command] #'company-indent-or-complete-common)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.