আপডেট : আমি সিমেন্টিক রিফ্যাক্টর প্যাকেজ তৈরি করেছি যা এই সমস্যা এবং আরও অনেক কিছুকে পুরোপুরি সমাধান করে। আপনি তাকান করতে পারেন গণদেবতা দেখতে কিভাবে এটি কাজ করে। এই বাক্যটির পরে এই উত্তরের বাকী পাঠ্যটি পুরানো এবং কেবল historicalতিহাসিক কারণে এটি রেখে দেওয়া হয়েছে।
পুরানো উত্তর :
আপনি senator-copy-tag
সঠিকভাবে ফাংশন স্বাক্ষর অনুলিপি করতে ব্যবহার করতে পারেন , তারপরে আপনার উত্স ফাইলে পেস্ট করুন। senator-copy-tag
এবং সেনেটর কমান্ডগুলি উপলভ্য যখন আপনি সক্ষম করবেন semantic-mode
:
(semantic-mode 1)
শব্দার্থক একটি ইম্যাক্স অন্তর্নির্মিত প্যাকেজ।
আপনি আপনার প্রকল্পের যে কোনও জায়গা থেকে অন্য ফাইলে (একই নামে পৃথক এক্সটেনশানযুক্ত ফাইল) ফাংশন প্রোটোটাইপ সন্নিবেশ করার জন্য আপনি প্রজেক্টাইলের সাথে সিমেন্টিক সিনেটরকে একটি কমান্ডের সাথে সংযুক্ত করতে পারেন। যদি অন্য একটি ফাইল থাকে তবে কমান্ডটি তত্ক্ষণাত সেই ফাইলটিতে প্রবেশ করান; যদি একের বেশি হয় তবে আপনাকে একটি ফাইল নির্বাচন করতে অনুরোধ করা হবে; যদি কিছুই না থাকে তবে আপনাকে আপনার প্রকল্পের সমস্ত ফাইলের জন্য অনুরোধ জানানো হবে। আপনি কোনও ফাইল নির্বাচন করার পরে, একটি প্রম্পট বর্তমান বাফারে সিমেন্টিক ট্যাগগুলির একটি তালিকা সরবরাহ করে যা আপনি পরে toোকানোর জন্য চয়ন করতে পারেন।
আমি জমা একটি জনসংযোগ করতে গিয়ে Emacs Refactor । আপনি যদি PR এর অপেক্ষা না করে চেষ্টা করতে চান তবে সম্পূর্ণ কোড: এখানে ক্লিক করুন ।
এখানে একটি ডেমো রয়েছে (এটি START DEMO
নীচে দেখলে এটি শুরু হয় ):
প্রোটোটাইপ অনুলিপি এবং ফাংশন করতে আপনি কেবল সিনেটর ব্যবহার করতে পারেন। যতক্ষণ বিন্দু ফাংশন স্বাক্ষর বা ফাংশন বডি এর ভিতরে যে কোনও জায়গায় থাকে, রান senator-copy-tag
, যা C-c , M-w
ডিফল্টরূপে আবদ্ধ হয় , এটি পুরো ফাংশনটি অনুলিপি করে: স্বাক্ষর এবং শরীর উভয়ই। তবে, আপনি কেবলমাত্র স্বাক্ষরটি পেস্ট করতে পারেন যদি আপনি কমান্ডটি চালিয়ে চান senator-yank-tag
যা C-c , C-y
ডিফল্টরূপে আবদ্ধ । টিপুন C-y
টিপুন তার শরীরের সাথে পুরো ফাংশন স্বাক্ষরটি আটকে দিন। senator-copy-tag
এমনকি এই জাতীয় একাধিক লাইনে ফাংশন স্বাক্ষরের প্রসারিত সহ কাজ করে:
void
func(int a,
int b,
int c)
{
.....
}
যদিও এই পদ্ধতির সাথে একই নামের সাথে সরাসরি বাফারটি sertোকানো হয়নি, তবে এটি অন্যান্য ক্ষেত্রে আরও প্রযোজ্য। আপনার ব্যবহারের ক্ষেত্রে কেবলমাত্র যদি আপনার একই ডিরেক্টরিতে একই নাম এবং পৃথক এক্সটেনশান সহ দুটি ফাইল থাকে তবে কাজ করে। যদি ফাংশন ঘোষণা এবং ফাংশন সংজ্ঞা অবশ্যই আলাদা আলাদা আলাদা আলাদা আলাদা ফাইলের মধ্যে থাকে?
সম্পাদনা 2 : এখানে শব্দার্থক ট্যাগ ব্যবহার করে ফাংশন প্রোটোটাইপের স্মার্ট সন্নিবেশের একটি উদাহরণ রয়েছে। বর্তমানে, আপনি কেবলমাত্র শীর্ষ স্তরের শব্দার্থক ট্যাগগুলির আপেক্ষিক অবস্থানগুলির ("পূর্বে" এবং "পরে") ভিত্তিতে সন্নিবেশ করতে পারেন। আমি ইউজার করতে আপডেট হবে কোন জায়গা যেখানে শব্দার্থিক ট্যাগ, পাওয়া যায় আরও অবস্থানের সঙ্গে সন্নিবেশ পাবে (অর্থাত যখন একটি ট্যাগ একটি হল Class
, এটা অতিরিক্ত অবস্থানের প্রস্তাব করা উচিত: public
, projected
এবং private
)। আপনি START DEMO
নীচের অংশে দেখলে ডেমোটি শুরু হয় :
বোনাস : আপনি যদি .cpp
একটি শিরোনাম ফাইল থেকে কোনও ফাইলে ফাঁকা ফাংশন সংজ্ঞাগুলির একটি তালিকা তৈরি করতে চান তবে সদস্য-ফাংশন.েল ব্যবহার করুন । তবে শীঘ্রই, আমি এটিকে সিমেন্টিক + প্রজেক্টাইল দিয়ে প্রতিস্থাপন করব।