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 mendapatkan foobarsentence
penyelesaian. Jadi, Anda mungkin ingin mengubah backend perusahaan sehingga company-dabbrev
datang sebelumnya company-elisp
(atau company-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 anggota company-backends
backend individu, tetapi juga bisa menjadi daftar backend dalam hal penyelesaian dari backend digabung asalkan mereka mengembalikan yang sama prefix
atau teks yang harus dilengkapi (silakan lihat dokumentasi company-backends
untuk deskripsi rinci).
Jadi jika Anda ingin menggabungkan penyelesaian dari company-elisp
(pada emacsen terbaru company-capf
digunakan) dan company-dabbrev
cukup lakukan ini
(add-to-list 'company-backends '(company-capf company-dabbrev))
Selain itu, Anda dapat menggabungkan berbagai backend menggunakan :with
kata kunci
(add-to-list 'company-backends '(company-capf :with company-dabbrev))
Ini berbeda dari contoh daftar backend tanpa :with
karena perusahaan hanya akan menggunakan backend sebelum :with
untuk menentukan prefix
(teks yang harus diisi). Ini menyiratkan bahwa calon dari backend setelah :with
akan diabaikan oleh perusahaan, terlepas dari apakah backend mengembalikan a prefix
atau tidak, jika tidak ada dari backend sebelum :with
mengembalikan a prefix
.
Anda mungkin ingin mengatur ini secara lokal di buffer emacs-lisp (saya lebih suka melakukannya)