প্রসোপুলেটেড ডক্সিজেন মন্তব্য তৈরির কোনও ইয়াসনিপেট আছে কি?


10

নিম্নলিখিত সি ++ ফাংশনের জন্য:

bool importantStuff(double a, double b);

এটি নিম্নলিখিত স্নিপেট, সম্ভবত ট্যাগ ছাড়াই আউটপুট করা উচিত:

/**
 * <Insert description of importantStuff>
 *
 * @param a <Insert description of a>
 * @param b <Insert description of b>
 * @return <Insert description of the return value>
 */

আমি জালের আশেপাশে দেখেছি, তবে আমি উত্তরটি পেয়েছি সবচেয়ে কাছাকাছি হ'ল এই পুরানো এসও প্রশ্ন যেখানে উত্তরটি আর রক্ষণাবেক্ষণ করা ডক্সিম্যাকস মোডের উপর নির্ভর করে।


আমি মনে করি c-sharp-modeকিছু আছে যা এটি করে।
— এরিকস্টোক

আপনি কি নতুন ফাংশন বা বিদ্যমানগুলির জন্য এটি করতে চান?
— ইজজেড

প্রশ্ন জিজ্ঞাসা করার সময় আমি ফাংশনের স্বাক্ষর থেকে উত্পন্ন করা অক্সিজেন মন্তব্য সম্পর্কে ভাবছিলাম।
— রোভানিয়ন

উত্তর:


4

আমি নিম্নলিখিতটি ব্যবহার করি যা ইতিমধ্যে উত্তর হিসাবে উল্লিখিত স্ট্যান্ডার্ড ডোক্সিম্যাকস ভিত্তিক একটি এবং আবো-আবোর সিমেটিক ভিত্তিক ম্যাসআপ - এটির জন্য কেবল অর্থ ও ইয়াসনিপেট প্রয়োজন। এটি অ্যাবো-অ্যাবো'র সংস্করণটির তুলনায় প্রাসঙ্গিক তথ্যের সাথে আরও কিছু ইয়াসনিপেট স্থানধারককে প্রাক-জনপ্রিয় করে তোলে।


# -*- mode: snippet -*-
# name: dox
# key: dox
# type: command
# --
(unless (and (fboundp 'semantic-current-tag)
             semantic-mode)
  (error "Semantic required to use dox snippet"))
(let ((tag (senator-next-tag)))
  (while (or (null tag)
             (not (semantic-tag-of-class-p tag 'function)))
    (setq tag (senator-next-tag)))
  (let* ((name (semantic-tag-name tag))
         (attrs (semantic-tag-attributes tag))
         (args (plist-get attrs :arguments))
         (return-name (plist-get attrs :type))
         (idx 1))
    (if (listp return-name)
      (setq return-name (car return-name)))
    (yas/expand-snippet
     (format
      "/**
* @brief ${1:%s}
*
%s
%s*/
"
      name
      (mapconcat
       (lambda (x)
         (format "* @param %s ${%d:Description of %s}"
                 (car x) (incf idx) (car x)))
       args
       "\n")
      (if (and return-name (not (string-equal "void" return-name)))
          (format " * @return ${%d:%s}\n" (incf idx) return-name)
        "")))))


এই সমাধানটি একেবারে কাজ করে, তবে সমস্ত প্রয়োজনীয় কোডটি দিয়ে সিগনেটিক মোডের জন্য অপেক্ষা করা সামান্য জটিল। আমি যদি পরিবর্তে একটি ভেরিয়েবলের আগে ডক্স <ট্যাব> লিখি তবে আমি ইমাসকে অন্তহীন লুপগুলিতে আটকে রেখেছি। তবে এই পৃথিবীতে কোনও কিছুই থাকতে পারে না: ডি
— রোভানিয়ন

এটি উপরের চেয়ে উচ্চতর ভোট দেওয়া উচিত, কারণ এটি মু-ডক্সিজেনের চেয়ে সমৃদ্ধ
— আলেজান্দ্রো ইরিকসন

3

সবেমাত্র এই বৈশিষ্ট্যটি ফাংশন-আরগসে যুক্ত করা হয়েছে ।

আপনি যদি আগ্রহী হন তবে কোডটি এখানে। এটি সিডিইটি ব্যবহার করছে:

(defun moo-doxygen ()
  "Generate a doxygen yasnippet and expand it with `aya-expand'.
The point should be on the top-level function name."
  (interactive)
  (move-beginning-of-line nil)
  (let ((tag (semantic-current-tag)))
    (unless (semantic-tag-of-class-p tag 'function)
      (error "Expected function, got %S" tag))
    (let* ((name (semantic-tag-name tag))
           (attrs (semantic-tag-attributes tag))
           (args (plist-get attrs :arguments))
           (ord 1))
      (setq aya-current
            (format
             "/**
* $1
*
%s
* @return $%d
*/
"
             (mapconcat
              (lambda (x)
                (format "* @param %s $%d"
                        (car x) (incf ord)))
              args
              "\n")
             (incf ord)))
      (aya-expand))))

আপনার অটো-ইয়াসনিপেটও দরকার । দুটি প্যাকেজই মেলপাতে উপলব্ধ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.