আমি কীভাবে কোম্পানির সাথে সি / সি ++ প্রসঙ্গ-সংবেদনশীল সমাপ্তি পেতে পারি?


11

Semantic এটি করতে সক্ষম হতে পারে বলে মনে হচ্ছে , তবে আমি এটি যেমন আশা করব তেমন কাজ করতে পারি না। উদাহরণস্বরূপ, যদি আমি #include "Type.h"এবং ডিক্লেয়ার করি Type t, semantic-complete-analyze-inlineযখন বিন্দু পরে হয় তবে t.ধারাবাহিকভাবে আমাকে ত্রুটি দেয়

'টাইপ টি' এর জন্য প্রকারগুলি খুঁজে পাওয়া যায় না

আমাকে জনসাধারণের সমস্ত (বা অন্যথায় উপযুক্ত) সদস্য দেওয়ার পরিবর্তে t

আমি এখানে যে ফলাফলটি খুঁজছি তা কীভাবে পাব? আদর্শভাবে, সিমেন্টিক যেভাবে কোম্পানির ব্যাকএন্ড হিসাবে সরবরাহ করতে পারে তা আমি কীভাবে ব্যবহার করতে পারি?


আপনি কি নিশ্চিত যে টাইপ। হকের উপস্থিত রয়েছে, পাওয়া যাচ্ছে, এবং প্রকারটি ঘোষিত হয়েছে? যদি আমি Type.h একটি বর্গ ঘোষণা সঙ্গে একই ডিরেক্টরির মধ্যে Type.h এবং Type.cpp করতে Typeক্ষেত্রের সাথে int fooএবং char barবাক্সের বাইরে, শব্দার্থিক এবং কোম্পানী হবে।
জে ডেভিড স্মিথ

company-backendsভেরিয়েবলের company-semanticতালিকায় রয়েছে কিনা তা আপনি যাচাই করেছেন ? যদি তা না হয় তবে আপনি তালিকাটির প্রথমটিতে এটিতে প্রেন্ডেন্ড যুক্ত করতে চান যাতে এটি প্রথম সন্ধান করা হয়
চিজি

মজার বিষয় হল এটি আমার বর্ণনা করা সর্বনিম্ন উদাহরণের সাথে কাজ করে। (দুর্ভাগ্যক্রমে আমি প্রকৃত ব্যবহারের ক্ষেত্রেটি দিতে পারি না, তবে এটির কোনও বিষয় হওয়া উচিত নয়)) সেমিনেটকে সমস্ত কিছুর পুনর্বিবেচনা করতে বাধ্য করার কোনও উপায় আছে কি?
শন অলরেড

@ জেডিভিডস্মিথ আমি এটি কীভাবে নিশ্চিত করতে পারি যে এটি সন্ধান করা হচ্ছে? আমি প্রকৃতপক্ষে যে প্রকল্পটি নিয়ে কাজ করছি এটি নির্মাণের কাঠামোর ক্ষেত্রে অত্যন্ত জটিল।
শান অলরেড

@ চিজি company-semanticভিতরে আছে company-backends; ধন্যবাদ :)
শান অলরেড

উত্তর:


1

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


0

আপনি সম্ভবত এখানে টিউটোরিয়ালটি অনুসরণ করতে এবং company-clangআরও ভাল প্রার্থী পেতে সেটআপ করতে চান।


0

প্রথমে আপনাকে সিডিইটি এবং ইড শুরু করতে হবে

(global-ede-mode 1)
(add-to-list 'semantic-default-submodes 'global-semanticdb-minor-mode 1)
(add-to-list 'semantic-default-submodes 'global-semantic-idle-scheduler-mode 1)
(add-to-list 'semantic-default-submodes 'global-semantic-stickyfunc-mode 1)
(add-to-list 'semantic-default-submodes 'global-semantic-highlight-func-mode 1)
(add-to-list 'semantic-default-submodes 'global-semantic-idle-summary-mode t)
(add-to-list 'semantic-default-submodes 'global-semantic-idle-completions-mode t)
(add-to-list 'semantic-default-submodes 'global-srecode-minor-mode t)
(add-to-list 'semantic-default-submodes 'global-semantic-decoration-mode t)
(semantic-mode) ;; Active le mode semantic
(require 'stickyfunc-enhance) ;; multilines concatene dans la header line
(require 'cedet-cscope)

(require 'ecb)
(ede-cpp-root-project "projName"
                  :name "projName Project"
                  :file "~/workspaces/projName/proj.txt" ;; an arbitrary file
                  :include-path '("/src/main/src"
                                  "/src/main/include"
                                  "/src/test/src"
                                  "/src/test/include"
                                  ... )
                  :system-include-path '("/usr/include/ ~/workspaces/install/proj3/lib/ /usr/include/boost/")
                  :spp-table '(("isUnix" . "") ("BOOST_TEST_DYN_LINK" . "")))
;; cedet semantic
(semanticdb-enable-gnu-global-databases 'c-mode t)
(semanticdb-enable-gnu-global-databases 'c++-mode t)
;; You can add this to improve the parse of macro-heavy code:
(require 'semantic/bovine/c)
(add-to-list 'semantic-lex-c-preprocessor-symbol-file "/usr/lib/gcc/x86_64-redhat-linux/4.4.7/include/stddef.h")

তারপরে আপনি সংস্থা-সি-হেডার ব্যবহার করতে পারেন ( https://github.com/randomphrase/company-c-headers )

(require 'company-c-headers)
     (add-to-list 'company-backends 'company-c-headers)
     (add-to-list 'company-c-headers-path-system "/usr/include/c++/4.4.7/ /home/me/DEPEDENCIES/LIBXX/lib/ /home/me/DEPEDENCIES/LIBYY/lib /usr/include/boost/"))
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.