সি ++ তে বুদ্ধিমান স্বয়ংক্রিয়তা কীভাবে পাবেন?


43

ইমাক্স অন্য কোনও আইডিই এর সাথে প্রতিযোগিতা করতে পারবেন না যদি এতে স্বয়ংক্রিয়ভাবে সমাপ্তির কাজ নেই। স্বতঃ-সম্পূর্ণ কেবল আমাকে আরও দক্ষ প্রোগ্রামার করে তোলে। আমি অটো সম্পূর্ণ মোড এক্সটেনশানটি জানি , তবে এটি সি ++ এর সাথে কাজ করে না।

স্বয়ংসম্পূর্ণ

আমি কীভাবে সি ++ এর জন্য স্মার্ট এবং দক্ষ স্বয়ংসম্পূর্ণতা অর্জন করতে পারি?


এই প্রশ্নটি মূলত মালাবারবা 51 নং অঞ্চলের প্রস্তাবনায় জিজ্ঞাসা করেছিলেন : সি ++ এ বুদ্ধিমান স্বয়ংক্রিয়তা কীভাবে পাবেন?


1
এই প্রশ্নটি সম্পর্কে কিছুটা প্রসারিত করা ভাল হবে। এটির অনেকগুলি সম্ভাব্য মান রয়েছে তবে এখনই প্রশ্নটি কেবল শিরোনাম।
মালবারবা

ব্যস্ততা-মোড এই সময়ে যাওয়ার উপায় বলে মনে হচ্ছে।
সেভকি

উত্তর:


45

দাবি অস্বীকার: আমি বিড়ম্বনা-মোডের লেখক

কোম্পানী-বিড়ম্বনা স্ক্রিনশট

আপনি যদি কেবল স্মার্ট অটো-সমাপ্তি চান তবে আমি কোম্পানী-বিড়ম্বনার সাথে কৌতুকপূর্ণ মোডের প্রস্তাব দিতে পারি ।

  • মেল্পা-এর জন্য কৌতুকপূর্ণ মোড ইনস্টল করা সহজ
  • সমাপ্তির ভীষণ সঠিক হয় এবং কর্মক্ষমতা বেশ শালীন ধন্যবাদ libclang
  • কোম্পানী-বিড়ম্বনার সাথে আপনার কাছে একটি অ্যাসিনক্রোনাস সমাপ্তির ব্যাকএন্ড রয়েছে যা সম্পূর্ণরূপে কিছুটা সময় নিলে আপনার পথে আসবে না
  • সংস্থা- বিড়ম্বনা ওভারলোডেড ফাংশনগুলিকে সমর্থন করে এবং যদি আপনি ইয়াসনিপেট ইনস্টল করে থাকেন তবে ফাংশনটি যুক্তিগুলি স্থানধারক হিসাবে পূরণের জন্য sertedোকানো হয়
  • যদি আপনার প্রকল্প ডক্সিজেন ব্যবহার করে তবে সম্পূর্ণ প্রার্থীর সংক্ষিপ্ত ডকুমেন্টেশন মিনিবাসে প্রদর্শিত হবে (স্ক্রিনশট দেখুন)
  • ইউনিক্সের মতো সিস্টেমে লিনিক-মোড সার্ভার স্থাপন (লিনাক্স, ওএস এক্স) সহজ হওয়া উচিত। অন্যদিকে উইন্ডোজের জন্য কিছুটা টুইট করা দরকার তবে এটি উইকিতে নথিভুক্ত

অন্য একটি সরঞ্জাম যা এখনও উদ্ধৃত হয়নি তা হল ইমাস-ওয়াইসিএমডি


2
তোমাকে অনেক ধন্যবাদ! আশা করি খুব শিগগির আমি এটি জানতে পেরেছিirony-mode
লুক

@ গুইলাউম পেপিন বিড়ম্বনা লেখার জন্য ধন্যবাদ! আপনি কি কোনও সময় বেঞ্চমার্ক উপলব্ধ আছে? আমি লক্ষ্য করেছি যে clang_codeCompleteAtএকটি পার্সড টিউ দিয়ে কল করা (তবে সংরক্ষণ না করা পরিবর্তনগুলি) লাগে 3-5 সেকেন্ড। এর irony-modeচেয়ে দ্রুত?
প্রধান

1
লৌহশালী লাইব্ল্যাং / ক্ল্যাং_কোড কমপ্লিট ব্যবহার করে, সুতরাং এর চেয়ে ভাল সময় আপনি পাবেন না। 3-5 সেকেন্ড প্রসঙ্গের উপর নির্ভর করে খুব বেশি হতে পারে (যেমন গ্লোবাল স্কোপে সম্পূর্ণকরণগুলি অন্যান্য স্কোপের চেয়ে অনেক বেশি সময় নেয়)। আমি সম্প্রতি কিছু সময় যা করেছি তা একবার দেখে নিতে পারেন: github.com/Sarcasm/irony-mode/issues/131#issuecomment-60008803
গুইলুম

সম্পর্কিত, ভবিষ্যতের পাঠকদের জন্য: github.com/Sarcasm/irony-mode/issues/140
সান অলরেড

বিড়ম্বনা-মোড এবং ইম্যাক্স-ওয়াইসিএমডি এর ভূমিকা কীভাবে তুলনা করতে পারে? তারা কি একে অপরের বিকল্প? এটি কখনও কখনও উভয় ব্যবহার করতে হবে?
প্রেক্সোলাইটিক

23

আমার গাইড পরীক্ষা করুন । এটি সি / সি ++ এ স্বয়ংক্রিয়ভাবে সমাপ্তির জন্য কয়েকটি পদ্ধতি তালিকাভুক্ত করে।

এই বিকল্পগুলি হ'ল:

  • ব্যবহার বিদ্রূপ । উচ্চতর প্রস্তাবিত, যেহেতু এটি অন্যান্য সমাধানগুলির সাথে তুলনা করে ঝাঁকুনি এবং সেটআপ করা সহজ uses

  • ইমাস থেকে অন্তর্নির্মিত পার্সার ব্যবহার করা। এটি ইমাকস পার্সার, সিমেটিকের মধ্যে থেকে পাওয়া সেরা স্বতঃ-সম্পূর্ণ, তবে লিনাক্স কার্নেলের মতো বৃহত প্রকল্পে এটি ধীর হবে।

  • company-modeসঙ্গে প্যাকেজ ব্যবহার company-clang। কোডের জন্য কোড সমাপ্তি জরিমানা সরবরাহ করে যেগুলি পাথগুলি স্বয়ংক্রিয়ভাবে ক্ল্যাং থেকে পাথগুলি পেতে পারে তবে এটিকে স্থানীয় প্রকল্পের জন্য কিছু কনফিগারেশন করতে হয়

  • সাথে ব্যবহার company-modeকরা company-gtags। এটি সম্পূর্ণ হিসাবে জিএনইউ গ্লোবাল থেকে উত্পন্ন ট্যাগ ডাটাবেস ব্যবহার করে। আপনি আপনার প্রকল্পে স্থানীয়ভাবে কোড সরবরাহের জন্য এটি ব্যবহার করতে পারেন। এটি উত্কৃষ্ট বুদ্ধিমান না যেহেতু এটি উত্পন্ন ডাটাবেসের ভিতরে সমস্ত কিছু আপনার কাছে ফেলে দেয়।

  • rtagsসরাসরি বিশ্লেষণের জন্য একটি সার্ভার সরবরাহ করে আরও এগিয়ে যায়। খাঁটি এলিসপ সমাধানের সাথে তুলনা করা সেটআপ করা জটিল।


আমি একমত হব না যে একটি খাঁটি ইমাস লিসপ সমাধানের চেয়ে আরটি্যাগগুলি সেটআপ করা আরও জটিল। খাঁটি ইম্যাক্স লিসপ সলিউশন সাধারণত cmake / বিল্ড ফাইলগুলি বিবেচনা করে না এবং খুব সহজেই কোনও শিরোনাম খুঁজে পেতে সক্ষম হয় । তুলনায় তুলনায় Rtags সেটআপ করা বেশ সহজ। এটি খুব ভাল পরীক্ষা কভারেজ সহ একটি প্রকল্প হিসাবে এখনও কিছুটা তরুণ।
বাওল

তুহডোর গাইডটিতে দুর্দান্ত সংযোজন: syamajala.github.io/c-ide.html
ভিক্টর

9

আরটি্যাগস + কোম্পানির সাথে আমি দুর্দান্ত সাফল্য পেয়েছি

আরটি্যাগগুলির একটি পৃথক ডিমন rdmচলমান দরকার যা কোড-সমাপ্তি, কোড-নেভিগেশন এবং রিফ্যাক্টরিংয়ের জন্য ঝাঁকুনি ব্যবহার করে। rdmপ্রতীকগুলির একটি ডাটাবেস হিসাবেও কাজ করে, যার অর্থ স্বয়ংক্রিয়তা সম্পূর্ণ সরাসরি কল করার যে কোনও সমাধানের চেয়ে অনেক দ্রুত clang_codeCompleteAt

Rdm আপনার প্রকল্পের যা ঝগড়া হতে পারে সংকলন পতাকার তথ্য প্রয়োজন, কিন্তু আপনি যদি থেকে পরামর্শ অনুসরণ RTags পৃষ্ঠা এবং সিমবলিক লিঙ্ক gcc-rtags-wrapper.shথেকে gcc, g++, ccএবং c++rdm স্বয়ংক্রিয়ভাবে পুনরায় কম্পাইল নতুন সংকলন পতাকা আপডেট হয়।


আমি কেবল বিড়ম্বনা-মোড থেকে আর্ট্যাগগুলিতে স্যুইচ করেছি। আয়রন-মোড নিয়মিত ক্রপ হয়ে যায় এবং প্রায় 15 মিনিট বা তার পরে কাজ করা বন্ধ করে দেয়। Rtags এখনও পর্যন্ত বেশ ভাল বলে মনে হচ্ছে, এবং ইয়াসনিপেটের সাথে ক্লিনার একীকরণ রয়েছে।
নেচেভে

6

সমাধান 1: সংস্থা-মোড + বিড়ম্বনা

আপনার প্রকল্পের সি / সি ++ শিরোনাম ফাইলগুলি কোথায় সন্ধান করতে হবে তা আপনাকে কেবল কোম্পানী-মোডে বলতে হবে।

আপনি যদি ক্যামকে ব্যবহার করেন তবে আপনি https://github.com/redguardtoo/cpputils-cmake কে আপনার জন্য সেটআপটি করতে দিতে পারেন (HINT: আমি cpputils-cmake এর লেখক)।

অথবা

সমাধান 2: সংস্থা-মোড + জিএনও গ্লোবাল

আরও কিছু বলার নেই, আপনার অন্যদের উল্লিখিত হিসাবে gnu গ্লোবাল ক্লাইপ সরঞ্জামের সাহায্যে ট্যাগগুলি তৈরি করতে হবে।


1

আমি আরটিএগস , ফ্লাই চেক, বিড়ম্বনা এবং সংস্থার ঝনঝন কনফিগার করতে cmake-আদর্শ ব্যবহার করছি

এখন আপনি একই সাথে আপনার বিল্ড সিস্টেম এবং আপনার পছন্দসই স্ট্যাটিক বিশ্লেষণ ইমাস প্লাগইনগুলি কনফিগার করতে পারেন !

সম্পাদনা: নোট করুন যে সংস্থার ঝাঁকুনি স্বতঃপূরণ সরবরাহ করে, যা আপনি অনুসন্ধান করেছেন এমন বৈশিষ্ট্য ছিল। cmake-আদর্শ ফ্লাই চেক এবং আরটি্যাগগুলিও কনফিগার করতে পারে, যা আরও বেশ কয়েকটি আইডিই-মতো বৈশিষ্ট্য যুক্ত করে।


1
সি ++ স্বতঃপূরণ পেতে কীভাবে এই প্রশ্নের উত্তর দেয় দয়া করে তা ব্যাখ্যা করুন।
ড্রু

@ ড্র কোম্পানী-জঞ্জাল পরিপূর্ণতা সরবরাহ করে
অ্যানিমেটেড

দয়া করে আপনার উত্তরে রাখুন। ধন্যবাদ.
ড্র

0

এমএক্স শব্দার্থ-মোড

www.gnu.org/software/emacs/manual/html_node/semantic/Using-Semantic.html#Using-Semantic

&&

ট্যাগ টেবিল

খুঁজে। -নাম "*। [chCH]" -প্রিন্ট | ইটাগস -

www.gnu.org/software/emacs/manual/html_node/emacs/Tags.html

ইটাগস , সিটি্যাগস - ইমাক্সের জন্য ট্যাগ ফাইল তৈরি করুন, vi

manpages.debian.org/cgi-bin/man.cgi?query=etags&apropos=0&sektion=0&manpath=Debian+8+jessie&format=html&locale=en

সিএমআই (বা এম-টিএবি) সমাপ্তি-পয়েন্ট। যদি সিমেন্টিক মোড সক্ষম করা থাকে তবে সেমেন্টিক পার্সার ডেটা ব্যবহার করার চেষ্টা করে। যদি শব্দার্থবিজ্ঞান মোড অক্ষম বা ব্যর্থ হয় তবে নির্বাচিত ট্যাগ টেবিল ব্যবহার করে সম্পূর্ণ করার চেষ্টা করে (ট্যাগগুলি দেখুন)

http://www.gnu.org/software/emacs/manual/html_node/emacs/Symbol-Completion.html#index-C_002dM_002di

এম। ( ফাইন্ড -ট্যাগ) ট্যাগ নাম & সংজ্ঞায় ঝাঁপ দাও

http://www.gnu.org/software/emacs/manual/html_node/emacs/Find-Tag.html#index-M_002d_002e

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