নথিপত্র
পয়েন্ট ফাংশনে এপিআই সম্পূর্ণ হওয়া এর ডকুমেন্টেশনে পাওয়া যাবে completion-at-point-functions
এই হুকের প্রতিটি ক্রিয়াকলাপকে কোনও যুক্তি ছাড়াই ঘুরে বলা হয় এবং এটি অর্থাত্ প্রযোজ্য নয়, বা সম্পূর্ণ করার জন্য কোনও যুক্তির কোনও ক্রিয়া (নিরুৎসাহিত), বা ফর্মের একটি তালিকা (START সমাপ্তি সমাপ্তি PROPS) যেখানে START এবং END সত্তাটি সম্পূর্ণ করার জন্য সীমানা নির্ধারণ করে এবং বিন্দুটি অন্তর্ভুক্ত করা উচিত, COLLECTION এটি সম্পূর্ণ করার জন্য ব্যবহারের জন্য সমাপ্তি টেবিল এবং অতিরিক্ত তথ্যের জন্য PROPS সম্পত্তি তালিকা রয়েছে।
start
, end
এবং props
সুস্পষ্ট, তবে আমি মনে করি এর বিন্যাসটি collection
সঠিকভাবে সংজ্ঞায়িত হয়নি। তার জন্য আপনি try-completion
বা এর ডকুমেন্টেশন দেখতে পারেনall-completions
যদি সংগ্রহটি একটি তালিকাবদ্ধ থাকে, কীগুলি (উপাদানগুলির গাড়ি) সম্ভাব্য পরিসমাপ্তি। যদি কোনও উপাদানটি কোনও কনস সেল নয়, তবে উপাদানটি নিজেই সম্ভাব্য সমাপ্তি। যদি COLLECTION হ্যাশ-টেবিল হয় তবে স্ট্রিং বা প্রতীকযুক্ত সমস্ত কীগুলি সম্ভাব্য পরিসমাপ্তি। যদি COLLECTION একটি ওভারে হয় তবে ওবারে সমস্ত চিহ্নের নামগুলি সম্ভাব্য পরিসমাপ্তি।
সংগ্রহ সম্পূর্ণরূপে নিজেই করতে একটি ফাংশন হতে পারে। এটি তিনটি আর্গুমেন্ট গ্রহণ করে: মানগুলি STRING, পূর্বে এবং শূন্য। যা-ই ফিরে আসে তা 'চেষ্টা-সমাপ্তির' মান হয়ে যায়।
উদাহরণ
নীচে বিন্দু ফাংশনে সমাপ্তির একটি সাধারণ উদাহরণ যা /etc/dictionaries-common/words
বাফারে শব্দগুলি সম্পূর্ণ করতে সংজ্ঞায়িত শব্দগুলি ব্যবহার করে
(defvar words (split-string (with-temp-buffer
(insert-file-contents-literally "/etc/dictionaries-common/words")
(buffer-string))
"\n"))
(defun words-completion-at-point ()
(let ((bounds (bounds-of-thing-at-point 'word)))
(when bounds
(list (car bounds)
(cdr bounds)
words
:exclusive 'no
:company-docsig #'identity
:company-doc-buffer (lambda (cand)
(company-doc-buffer (format "'%s' is defined in '/etc/dictionaries-common/words'" cand)))
:company-location (lambda (cand)
(with-current-buffer (find-file-noselect "/etc/dictionaries-common/words")
(goto-char (point-min))
(cons (current-buffer) (search-forward cand nil t))))))))
সমাপ্তির ফাংশনটি বিন্দুতে শব্দের সন্ধান করে (লাইব্রেরিটি thingatpt
শব্দের সীমাগুলি সন্ধান করতে ব্যবহৃত হয়) এবং এটি /etc/dictionaries-common/words
ফাইলের শব্দের বিপরীতে সম্পূর্ণ করে , সম্পত্তিটি :exclusive
সেট করা থাকে no
যাতে আমাদের ব্যর্থ হলে ইমাসগুলি অন্যান্য ক্যাপ ফাংশন ব্যবহার করতে পারে। অবশেষে কিছু অতিরিক্ত সম্পত্তি সংস্থা-মোড ইন্টিগ্রেশন উন্নত করতে সেট করা আছে।
কর্মক্ষমতা
আমার সিস্টেমে শব্দগুলির ফাইলটিতে 99171 টি এন্ট্রি রয়েছে এবং ইমাকগুলি কোনও সমস্যা ছাড়াই সেগুলি সম্পন্ন করতে সক্ষম হয়েছিল, তাই আমার ধারণা 15000 এন্ট্রি কোনও সমস্যা হওয়া উচিত নয়।
সংস্থা-মোডের সাথে সংহতকরণ
কোম্পানি মোড ব্যাকএন্ড completion-at-point-functions
ব্যবহারের সাথে খুব ভালভাবে সংহত করে company-capf
, তাই এটি আপনার জন্য বাক্সের বাইরে কাজ করা উচিত, তবে আপনি props
ক্যাপের ফাংশনের ফলে অতিরিক্ত ফিরে এসে কোম্পানির দেওয়া পরিপূরকগুলি বাড়িয়ে তুলতে পারেন। প্রপস বর্তমানে সমর্থিত হয়
:company-doc-buffer
- বর্তমান প্রার্থীর মেটাডেটা প্রদর্শন করতে সংস্থা দ্বারা ব্যবহৃত
:company-docsig
- মিনিবাসে প্রার্থী সম্পর্কে মেটাডেটা প্রতিধ্বনি করতে সংস্থার দ্বারা ব্যবহৃত
:company-location
- বর্তমান প্রার্থীর লোকেশনে লাফ দিতে সংস্থা দ্বারা ব্যবহৃত