KnightIgor 2 27 ноября, 2020 Опубликовано 27 ноября, 2020 · Жалоба На такой вопрос от 2008 года я уже набрел на этом форуме, но ответа там не было. Я в ту ветку написал, но последняя запись там - от 2017, потому не бейте ногами, что я замутил эту тему вновь. Вопрос прост: в STM32CubeIDE, которая базируется на eclipse, я хочу конкретно подкрасить bool, false и true (а может и еще что). В отличие от KEIL IDE, где просто надо добавить эти слова в соответствующий список, в eclipse как-то все сложно: поиск google дает какие-то java скрипты, которые не ясно мне, куда писать и как исполнять. Потому вопрос: как добавить свое в список ключевых слов в редакторе, заточенном под C\C++? Если можно, объяснить как для чайников. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aaron 1 27 ноября, 2020 Опубликовано 27 ноября, 2020 · Жалоба Я добавлял себе в старые проекты, не заточенные под GCC компилятор, файлик eclipse-pic-compat.h следующего вида: #ifndef ECLIPSE_PIC_COMPAT_H_ #define ECLIPSE_PIC_COMPAT_H_ // define macro "ECLIPSE_MPLAB_PROJECT" to avoid eclipse parser errors #ifdef ECLIPSE_MPLAB_PROJECT #define interrupt #define low_priority // interrupt #define high_priority // interrupt #define __bit char #define __nonreentrant #define intrinsic(X) "void" // NOTE: добавлять сюда extern-заглушки для всех использующихся определений вида extern volatile TXSTA1bits_t TXSTA1bits @ 0xFAC из файла описания МК библиотеки xc8\...\include extern PORTAbits_t PORTAbits; extern PORTBbits_t PORTBbits; extern PORTCbits_t PORTCbits; extern OSCCONbits_t OSCCONbits; extern INTCONbits_t INTCONbits; #endif // ECLIPSE_MPLAB_PROJECT #endif /* ECLIPSE_PIC_COMPAT_H_ */ Ну и в проекте в начале main.h его подключал. В свойствах проекта прописывал определение ECLIPSE_MPLAB_PROJECT Убивает двух зайцев - подсветка пользовательских слов и исключение ошибок встроенного парсера GCC при работе с такими проектами. Делал такие же файлики для проектов, которые были заточены под кейловский компилятор. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KnightIgor 2 27 ноября, 2020 Опубликовано 27 ноября, 2020 · Жалоба 2 minutes ago, Aaron said: Я добавлял себе в старые проекты, не заточенные под GCC компилятор, файлик eclipse-pic-compat.h следующего вида: #ifndef ECLIPSE_PIC_COMPAT_H_ #define ECLIPSE_PIC_COMPAT_H_ // define macro "ECLIPSE_MPLAB_PROJECT" to avoid eclipse parser errors #ifdef ECLIPSE_MPLAB_PROJECT #define interrupt #define low_priority // interrupt #define high_priority // interrupt #define __bit char #define __nonreentrant #define intrinsic(X) "void" // NOTE: добавлять сюда extern-заглушки для всех использующихся определений вида extern volatile TXSTA1bits_t TXSTA1bits @ 0xFAC из файла описания МК библиотеки xc8\...\include extern PORTAbits_t PORTAbits; extern PORTBbits_t PORTBbits; extern PORTCbits_t PORTCbits; extern OSCCONbits_t OSCCONbits; extern INTCONbits_t INTCONbits; #endif // ECLIPSE_MPLAB_PROJECT #endif /* ECLIPSE_PIC_COMPAT_H_ */ Ну и в проекте в начале main.h его подключал. В свойствах проекта прописывал определение ECLIPSE_MPLAB_PROJECT Убивает двух зайцев - подсветка пользовательских слов и исключение ошибок встроенного парсера GCC при работе с такими проектами. Делал такие же файлики для проектов, которые были заточены под кейловский компилятор. Это, конечно, левой ногой с вертушки в глаз тому, кто держит доску. bool, false и true уже определены. Если я их переопределю, начнется ругня. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aaron 1 27 ноября, 2020 Опубликовано 27 ноября, 2020 · Жалоба А почему вы считаете, что они определены? Если вы используете GCC в режиме "Си", то он не знает этих ключевых слов - только в режиме "Си++". Вы же говорите, что bool, false, true - это пользовательские слова (из названия темы). Я вас так и понял. Дак а вам получается просто нужно раскрасить ключевые слова языка, уже имеющиеся и распознаваемые Eclipse. Был проект то ли на github, то ли на sourceforge, который позволял собственные темы цветовые создавать для Eclipse, я им один раз воспользовался, для себя тему создал, и с ней живу уже десяток лет, ничего не меняя :) Могу поделиться, если надо. Файлик *.epf настроек C Editor Appearance импортируется в каждый новый workspace. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KnightIgor 2 27 ноября, 2020 Опубликовано 27 ноября, 2020 · Жалоба 1 hour ago, Aaron said: А почему вы считаете, что они определены? Если вы используете GCC в режиме "Си", то он не знает этих ключевых слов - только в режиме "Си++". Вы же говорите, что bool, false, true - это пользовательские слова (из названия темы). Я вас так и понял. Я не считаю, определены ли, я это вижу опытным путем, т.к. я их использую в программе без излишних телодвижений кроме, может быть, #include <stdbool.h>. Однако они не подкрашиваются как другие, а мне бы хотелось. Вот uint8_t, к примеру, подкрашивается, хотя не является встроенным типом, а определен в stdint.h. Касаемо ЦЕЛОЙ красочной темы: я не хочу изгаляться и извращаться. Мне бы только быстро и просто список раскраски дополнить... А файлик киньте, буду благодарен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AleksBak 0 27 ноября, 2020 Опубликовано 27 ноября, 2020 · Жалоба 2 часа назад, KnightIgor сказал: Касаемо ЦЕЛОЙ красочной темы: я не хочу изгаляться и извращаться. Мне бы только быстро и просто список раскраски дополнить... Ответил на Ваш похожий вопрос, заданный в другой теме. Также устанавливал различные цветовые схемы тут (в STM32CubeIDE). Названия этих плагинов подзабыл и на вскидку покамест не могу узнать т.к. некоторое время назад пришлось переустанавливать STM32CubeIDE по некоторым причинам. А когда ее переустановил, то даже не установив снова тот плагин для цветовой схемы, а просто открыв свою старую workspace, получил в итоге все предыдущие цветовые настройки заново (!). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aaron 1 30 ноября, 2020 Опубликовано 30 ноября, 2020 · Жалоба Файлик готовый прикрепить не могу, уж извините (прокся только на вход), придётся вам самим создать workspace.epf со следующим содержимым: Spoiler #Fri Feb 05 12:39:08 MSK 2016 /instance/org.eclipse.cdt.ui/semanticHighlighting.localVariable.color=0,128,159 /instance/org.eclipse.cdt.ui/semanticHighlighting.localVariableDeclaration.bold=false /instance/org.eclipse.cdt.ui/pp_default=0,116,0 /instance/org.eclipse.cdt.ui/editor_folding_enabled=true /instance/org.eclipse.cdt.ui/closeAngularBrackets=false /instance/org.eclipse.cdt.ui/org.eclipse.cdt.internal.ui.text.doctools.doxygen.recognizedTag_bold=true /instance/org.eclipse.cdt.ui/editor_folding_preprocessor_enabled=true /instance/org.eclipse.cdt.ui/semanticHighlighting.label.enabled=true /instance/org.eclipse.cdt.ui/semanticHighlighting.class.color=107,117,0 /instance/org.eclipse.cdt.ui/semanticHighlighting.macroDefinition.strikethrough=false /instance/org.eclipse.cdt.ui/semanticHighlighting.overloadedOperator.enabled=true /instance/org.eclipse.cdt.ui/asm_label=210,0,0 /instance/org.eclipse.cdt.ui/c_multi_line_comment_italic=true /instance/org.eclipse.cdt.ui/semanticHighlighting.functionDeclaration.color=64,64,0 @org.eclipse.cdt.ui=5.3.2.201202111925 /instance/org.eclipse.cdt.ui/org.eclipse.cdt.internal.ui.text.doctools.doxygen.recognizedTag=94,126,159 /instance/org.eclipse.cdt.ui/org.eclipse.cdt.ui.outline.linktoeditor=true /instance/org.eclipse.cdt.ui/semanticHighlighting.methodDeclaration.enabled=true /instance/org.eclipse.cdt.ui/semanticHighlighting.overloadedOperator.bold=true /instance/org.eclipse.cdt.ui/semanticHighlighting.functionDeclaration.underline=false /instance/org.eclipse.cdt.ui/semanticHighlighting.staticField.bold=false /instance/org.eclipse.cdt.ui/semanticHighlighting.externalSDK.enabled=true /instance/org.eclipse.cdt.ui/org.eclipse.cdt.internal.ui.text.doctools.doxygen.recognizedTag_italic=true /instance/org.eclipse.cdt.ui/semanticHighlighting.enum.enabled=true /instance/org.eclipse.cdt.ui/c_comment_task_tag_italic=true /instance/org.eclipse.cdt.ui/asm_label_underline=true /instance/org.eclipse.cdt.ui/c_multi_line_comment=135,163,163 /instance/org.eclipse.cdt.ui/Refactoring.savealleditors=true /instance/org.eclipse.cdt.ui/semanticHighlighting.enumerator.enabled=true /instance/org.eclipse.cdt.ui/semanticHighlighting.enumerator.italic=false /instance/org.eclipse.cdt.ui/semanticHighlighting.externalSDK.color=119,111,0 /instance/org.eclipse.cdt.ui/semanticHighlighting.functionDeclaration.strikethrough=false /instance/org.eclipse.cdt.ui/semanticHighlighting.localVariable.bold=false /instance/org.eclipse.cdt.ui/spelling_locale=en_US /instance/org.eclipse.cdt.ui/semanticHighlighting.macroDefinition.enabled=true /instance/org.eclipse.cdt.ui/semanticHighlighting.methodDeclaration.underline=false /instance/org.eclipse.cdt.ui/semanticHighlighting.localVariableDeclaration.enabled=true file_export_version=3.0 /instance/org.eclipse.cdt.ui/semanticHighlighting.function.enabled=true /instance/org.eclipse.cdt.ui/pp_directive=101,0,202 /instance/org.eclipse.cdt.ui/semanticHighlighting.class.enabled=true /instance/org.eclipse.cdt.ui/org.eclipse.cdt.internal.ui.text.doctools.doxygen.multi=121,149,176 /instance/org.eclipse.cdt.ui/org.eclipse.cdt.ui.outline.groupmembers=true /instance/org.eclipse.cdt.ui/c_string_bold=true /instance/org.eclipse.cdt.ui/org.eclipse.cdt.ui.outline.groupmacros=true /instance/org.eclipse.cdt.ui/semanticHighlighting.method.enabled=true /instance/org.eclipse.cdt.ui/semanticHighlighting.field.bold=false /instance/org.eclipse.cdt.ui/editor_folding_statements=true /instance/org.eclipse.cdt.ui/semanticHighlighting.namespace.color=198,0,198 /instance/org.eclipse.cdt.ui/hoverModifiers=org.eclipse.cdt.ui.BestMatchHover;0;org.eclipse.cdt.debug.internal.ui.editors.DebugTextHover;\!0;org.eclipse.cdt.ui.ProblemHover;\!0;org.eclipse.cdt.ui.CDocHover;\!0;org.eclipse.cdt.ui.CMacroExpansionHover;\!0;org.eclipse.cdt.ui.CSourceHover;Shift;org.eclipse.cdt.ui.AnnotationHover;\!0; /instance/org.eclipse.cdt.ui/semanticHighlighting.macroSubstitution.enabled=true /instance/org.eclipse.cdt.ui/c_braces=0,116,0 /instance/org.eclipse.cdt.ui/org.eclipse.cdt.internal.ui.text.doctools.doxygen.single=156,176,197 /instance/org.eclipse.cdt.ui/content_assist_category_order=org.eclipse.mylyn.cdt.ui.parserProposalCategory\:65535\u0000org.eclipse.cdt.ui.templateProposalCategory\:1\u0000org.eclipse.cdt.ui.parserProposalCategory\:2\u0000org.eclipse.cdt.ui.helpProposalCategory\:3\u0000org.eclipse.cdt.ui.textProposalCategory\:65539\u0000 /instance/org.eclipse.cdt.ui/semanticHighlighting.namespace.enabled=true /instance/org.eclipse.cdt.ui/semanticHighlighting.staticField.color=118,130,107 /instance/org.eclipse.cdt.ui/semanticHighlighting.enumerator.color=144,36,163 /instance/org.eclipse.cdt.ui/org.eclipse.cdt.ui.outline.groupincludes=true /instance/org.eclipse.cdt.ui/semanticHighlighting.problem.enabled=true \!/= /instance/org.eclipse.cdt.ui/semanticHighlighting.localVariableDeclaration.color=0,128,159 /instance/org.eclipse.cdt.ui/semanticHighlighting.class.bold=true /instance/org.eclipse.cdt.ui/semanticHighlighting.namespace.bold=true /instance/org.eclipse.cdt.ui/semanticHighlighting.method.color=67,106,0 /instance/org.eclipse.cdt.ui/semanticHighlighting.staticField.italic=false /instance/org.eclipse.cdt.ui/semanticHighlighting.globalVariable.color=145,105,0 /instance/org.eclipse.cdt.ui/c_numbers=144,36,163 /instance/org.eclipse.cdt.ui/editor_folding_default_headers=false /instance/org.eclipse.cdt.ui/c_numbers_bold=true /instance/org.eclipse.cdt.ui/semanticHighlighting.staticMethod.color=125,130,65 /instance/org.eclipse.cdt.ui/pp_header_bold=true /instance/org.eclipse.cdt.ui/org.eclipse.cdt.ui.outline.groupnamespaces=true /instance/org.eclipse.cdt.ui/semanticHighlighting.globalVariable.italic=false /instance/org.eclipse.cdt.ui/c_string=0,0,255 /instance/org.eclipse.cdt.ui/c_type=149,138,0 /instance/org.eclipse.cdt.ui/hoverModifierMasks=org.eclipse.cdt.ui.BestMatchHover;0;org.eclipse.cdt.debug.internal.ui.editors.DebugTextHover;0;org.eclipse.cdt.ui.ProblemHover;0;org.eclipse.cdt.ui.CDocHover;0;org.eclipse.cdt.ui.CMacroExpansionHover;0;org.eclipse.cdt.ui.CSourceHover;131072;org.eclipse.cdt.ui.AnnotationHover;0; /instance/org.eclipse.cdt.ui/org.eclipse.cdt.internal.ui.text.doctools.doxygen.multi_italic=true /instance/org.eclipse.cdt.ui/asm_directive=0,116,0 /instance/org.eclipse.cdt.ui/sourceHoverBackgroundColor=228,242,218 /instance/org.eclipse.cdt.ui/semanticHighlighting.field.enabled=true /instance/org.eclipse.cdt.ui/c_default=0,116,0 /instance/org.eclipse.cdt.ui/sourceHoverBackgroundColor.SystemDefault=false /instance/org.eclipse.cdt.ui/spelling_user_dictionary_encoding= /instance/org.eclipse.cdt.ui/c_keyword=0,116,0 /instance/org.eclipse.cdt.ui/content_assist_parameters_foreground=0,116,0 /instance/org.eclipse.cdt.ui/c_operators=0,0,0 /instance/org.eclipse.cdt.ui/content_assist_proposals_foreground=0,116,0 /instance/org.eclipse.cdt.ui/c_comment_task_tag=80,148,147 /instance/org.eclipse.cdt.ui/semanticHighlighting.label.underline=true /instance/org.eclipse.cdt.ui/semanticHighlighting.function.color=64,64,0 /instance/org.eclipse.cdt.ui/scalability.reconciler=false /instance/org.eclipse.cdt.ui/editor_folding_default_inactive=false /instance/org.eclipse.cdt.ui/spelling_locale_initialized=true /instance/org.eclipse.cdt.ui/semanticHighlighting.typedef.color=155,113,0 /instance/org.eclipse.cdt.ui/c_single_line_comment_italic=true /instance/org.eclipse.cdt.ui/semanticHighlighting.methodDeclaration.color=67,106,0 /instance/org.eclipse.cdt.ui/semanticHighlighting.staticMethod.italic=false /instance/org.eclipse.cdt.ui/scalability.numberOfLines=10000 /instance/org.eclipse.cdt.ui/spelling_ignore_string_literals=true /instance/org.eclipse.cdt.ui/closeBrackets=false /instance/org.eclipse.cdt.ui/semanticHighlighting.localVariable.enabled=true /instance/org.eclipse.cdt.ui/stickyOccurrences=false /instance/org.eclipse.cdt.ui/semanticHighlighting.enum.bold=true /instance/org.eclipse.cdt.ui/content_assist_parameters_background=249,252,247 /instance/org.eclipse.cdt.ui/semanticHighlighting.parameterVariable.color=0,80,159 /instance/org.eclipse.cdt.ui/semanticHighlighting.label.bold=true /instance/org.eclipse.cdt.ui/pp_header=0,47,255 /instance/org.eclipse.cdt.ui/semanticHighlighting.macroSubstitution.color=170,85,0 /instance/org.eclipse.cdt.ui/semanticHighlighting.macroDefinition.underline=false /instance/org.eclipse.cdt.ui/content_assist_disabled_computers=org.eclipse.cdt.ui.parserProposalCategory\u0000org.eclipse.cdt.ui.textProposalCategory\u0000 /instance/org.eclipse.cdt.ui/semanticHighlighting.staticMethod.enabled=true /instance/org.eclipse.cdt.ui/semanticHighlighting.typedef.enabled=true /instance/org.eclipse.cdt.ui/semanticHighlighting.functionDeclaration.enabled=true /instance/org.eclipse.cdt.ui/scalability.detect=false /instance/org.eclipse.cdt.ui/semanticHighlighting.externalSDK.bold=false /instance/org.eclipse.cdt.ui/semanticHighlighting.staticField.enabled=true /instance/org.eclipse.cdt.ui/semanticHighlighting.methodDeclaration.strikethrough=false /instance/org.eclipse.cdt.ui/semanticHighlighting.globalVariable.enabled=true /instance/org.eclipse.cdt.ui/semanticHighlighting.typeParameter.enabled=true /instance/org.eclipse.cdt.ui/semanticHighlighting.function.bold=false /instance/org.eclipse.cdt.ui/content_assist_proposals_background=249,252,247 /instance/org.eclipse.cdt.ui/semanticHighlighting.enumerator.bold=false /instance/org.eclipse.cdt.ui/org.eclipse.cdt.ui.editor.UseStructuralMode=true /instance/org.eclipse.cdt.ui/semanticHighlighting.macroDefinition.color=170,85,0 /instance/org.eclipse.cdt.ui/semanticHighlighting.enum.color=144,36,163 /instance/org.eclipse.cdt.ui/semanticHighlighting.field.color=36,147,108 /instance/org.eclipse.cdt.ui/org.eclipse.cdt.internal.ui.text.doctools.doxygen.single_italic=true /instance/org.eclipse.cdt.ui/semanticHighlighting.label.color=196,0,0 /instance/org.eclipse.cdt.ui/editor_folding_default_structures=false /instance/org.eclipse.cdt.ui/semanticHighlighting.typedef.bold=true /instance/org.eclipse.cdt.ui/semanticHighlighting.typeParameter.color=136,93,59 /instance/org.eclipse.cdt.ui/c_single_line_comment=149,186,185 /instance/org.eclipse.cdt.ui/semanticHighlighting.parameterVariable.enabled=true /instance/org.eclipse.cdt.ui/markOverloadedOperatorsOccurrences=true Можете поиграться, потом оставить только нужные вам строки semanticHighlighting. Мою цветовую схему прошу не критиковать, все галстуки на вкус разные ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AleksBak 0 30 ноября, 2020 Опубликовано 30 ноября, 2020 · Жалоба 4 часа назад, Aaron сказал: придётся вам самим создать workspace.epf Необязательно такое имя (насколько знаю). Я например просто пишу "settings_2706_NotePad_PP_02.epf", а потом импортирую эти настройки (этот файл). Импортировать нужно выбрав соотв. значок в левом нижнем углу окна "Preferences" (в меню "Window->Preferences"). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться