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


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.