Mempersiapkan:
Versi GUI GNU Emacs 25.0.50.1 (x86_64-w64-mingw32) dari 2015-07-25 di KAEL
, menggunakan versi terbaru dari MELPA
Windows 7 x64 bit.
Situasi:
Sebagai contoh, saya mengetik di buffer foobarsentence.
Dan kemudian mulai baris baru di bawah itu, dan mengetik fooba, saya diharapkan untuk mendapatkan foobarsentence
saran dari jendela penyelesaian popup Perusahaan. Tetapi tidak ada foobarsentence
.
Saya menemukannya dari jawaban lain bahwa saya bisa menggunakan company-dabbrev`` untuk itu, terikat M-/,. Tapi saya tidak tahu bagaimana saya bisa 'memberi makan' saran dari company-dabbrev
dalam jendela sembulan. Saya membuat screencast gif untuk memperjelas pertanyaan saya.
Seperti yang Anda lihat, M-/panggilan company-dabbrev
. Tapi saya ingin melihat yang disarankan dalam popup penyelesaian perusahaan. Itu mengejutkan saya ini bukan secara default.
Adakah saran untuk 'memberi makan' saran dari company-dabbrev
ke jendela sembulan perusahaan?
sumber
Jawaban:
Inilah cara penyelesaian dalam pekerjaan perusahaan (saya menyederhanakan sedikit deskripsi yang lebih rinci dapat ditemukan dalam dokumentasi
company-backends
C-hvcompany-backends
RET.Anda memiliki daftar backend (mesin penyelesaian) perusahaan harus mencoba untuk memberikan penyelesaian pada titik. Perusahaan mencoba masing-masing backend ini satu demi satu dan yang pertama yang mengembalikan setiap kandidat digunakan untuk penyelesaian dan sisanya dari backend diabaikan. Jadi secara default hanya satu backend yang digunakan sekaligus.
Dalam kasus Anda (Anda tampak dalam mode emacs-lisp-mode) backend emacs-lisp adalah mengembalikan kandidat untuk penyelesaian dan karenanya
company-dabbrev
tidak pernah digunakan oleh perusahaan untuk penyelesaian dan Anda tidak pernah mendapatkanfoobarsentence
penyelesaian. Jadi, Anda mungkin ingin mengubah backend perusahaan sehinggacompany-dabbrev
datang sebelumnyacompany-elisp
(ataucompany-capf
di emacsen baru-baru ini). Tapi saya kira itu bukan yang Anda inginkan karena itu akan membalikkan situasi saat ini dan Anda tidak akan mendapatkan penyelesaian dari backend emacs-lisp (dalam hal ini baca terus).Perusahaan menyediakan cara untuk menggabungkan penyelesaian dari berbagai sumber menggunakan apa yang disebutnya
grouped
backend. Biasanya anggotacompany-backends
backend individu, tetapi juga bisa menjadi daftar backend dalam hal penyelesaian dari backend digabung asalkan mereka mengembalikan yang samaprefix
atau teks yang harus dilengkapi (silakan lihat dokumentasicompany-backends
untuk deskripsi rinci).Jadi jika Anda ingin menggabungkan penyelesaian dari
company-elisp
(pada emacsen terbarucompany-capf
digunakan) dancompany-dabbrev
cukup lakukan iniSelain itu, Anda dapat menggabungkan berbagai backend menggunakan
:with
kata kunciIni berbeda dari contoh daftar backend tanpa
:with
karena perusahaan hanya akan menggunakan backend sebelum:with
untuk menentukanprefix
(teks yang harus diisi). Ini menyiratkan bahwa calon dari backend setelah:with
akan diabaikan oleh perusahaan, terlepas dari apakah backend mengembalikan aprefix
atau tidak, jika tidak ada dari backend sebelum:with
mengembalikan aprefix
.Anda mungkin ingin mengatur ini secara lokal di buffer emacs-lisp (saya lebih suka melakukannya)
sumber
:with