আমি সবচেয়ে ভাল উপায়টি ভাবতে পারি তা হ'ল এই সংখ্যাগুলি রফতানির আগে বা মূল্যায়ণের আগে আপডেট করা।
আপডেটার
এটি ফাংশন যা বাফারের মধ্য দিয়ে যায়। আপনি এটি একটি কীতে বাঁধতে পারেন, বা এটি একটি হুকের সাথে যুক্ত করতে পারেন। আপনি যখনই ফাইলটি সংরক্ষণ করেন নীচের কোডগুলি লাইনগুলিকে আপডেট করে
তবে আপনার ব্যবহারের কেসটি যদি আলাদা হয় তবে আপনার কোন হুকটি দরকার তা সন্ধান করুন! (org- মোড হুক পূর্ণ হয়)
(add-hook 'before-save-hook #'endless/update-includes)
(defun endless/update-includes (&rest ignore)
"Update the line numbers of all #+INCLUDE:s in current buffer.
Only looks at INCLUDEs that already have a line number listed!
This function does nothing if not in org-mode, so you can safely
add it to `before-save-hook'."
(interactive)
(when (derived-mode-p 'org-mode)
(save-excursion
(goto-char (point-min))
(while (search-forward-regexp
"^\\s-*#\\+INCLUDE: *\"\\([^\"]+\\)\".*:lines *\"\\([-0-9]+\\)\""
nil 'noerror)
(let* ((file (expand-file-name (match-string-no-properties 1)))
(lines (endless/decide-line-range file)))
(when lines
(replace-match lines :fixedcase :literal nil 2)))))))
রিজেক্সপস
এটিই আপনি পুনরায় সংজ্ঞা নির্ধারণ করেছেন যা অন্তর্ভুক্ত হওয়ার জন্য প্রথম এবং শেষ লাইন হিসাবে ব্যবহৃত হবে। আপনি প্রতিটি ফাইলের এক্সটেনশনের জন্য রেজিেক্সপগুলির একটি তালিকা দিতে পারেন।
(defcustom endless/extension-regexp-map
'(("sv" ("^class\\b" . "^endclass\\b") ("^enum\\b" . "^endenum\\b")))
"Alist of regexps to use for each file extension.
Each item should be
(EXTENSION (REGEXP-BEGIN . REGEXP-END) (REGEXP-BEGIN . REGEXP-END))
See `endless/decide-line-range' for more information."
:type '(repeat (cons string (repeat (cons regexp regexp)))))
পটভূমি কর্মী
এই লোকটিই বেশিরভাগ কাজ করে।
(defun endless/decide-line-range (file)
"Visit FILE and decide which lines to include.
The FILE's extension is used to get a list of cons cells from
`endless/extension-regexp-map'. Each cons cell is a pair of
regexps, which determine the beginning and end of region to be
included. The first one which matches is used."
(let ((regexps (cdr-safe (assoc (file-name-extension file)
endless/extension-regexp-map)))
it l r)
(when regexps
(save-match-data
(with-temp-buffer
(insert-file file)
(while regexps
(goto-char (point-min))
(setq it (pop regexps))
(when (search-forward-regexp (car it) nil 'noerror)
(setq l (line-number-at-pos (match-beginning 0)))
(when (search-forward-regexp (cdr it) nil 'noerror)
(setq regexps nil
r (line-number-at-pos (match-end 0))))))
(when r (format "%s-%s" l (+ r 1))))))))