Ok, I've done it. But the main problem
remains - no additional language appears in C++ project
properties at Eclipse instance with embedded plugin. So, it
does not help too.
I noticed only one strange moment: I have two "GNU C" items
in languages list of Eclipse instance with embedded plugin,
while in "usual" Eclipse I have only one. Looks like Eclipse
tried to add my language, but the result was "GNU C". Rather
strange, don't you think so?
18.10.2011 15:42, Leherbauer, Anton (Toni) пишет:
If
you just want to add preprocessor directives, you are
better off extending the scanner configuration by adding
you directives like this:
addPreprocessorKeyword(“my_directive”,
IPreprocessorDirective.ppIgnore);
That
way the preprocessor will ignore those directives.
Highlighting for those directives should work
automatically as long as you don’t override the
ICLanguageKeywords methods and getAdapter().
Note
that you should base your scanner configuration on
GPPScannerExtensionConfiguration if your language is an
extension to C++.
Again thank you, but it does not help
me. May be it is not enough for syntax highlight just to
implement ICLanguageKeywords? For example, am I need to
extend GNUScannerExtensionConfiguration too?
If true, can you tell me, what exaclty should I write in
such extension?
18.10.2011 15:11, Leherbauer, Anton (Toni) пишет:
The
implementation of getAdapter() does not look right.
If you
override the ICLanguageKeywords methods, you should
return “this” when the ICLanguageKeywords adapter is
requested, like this:
public Object getAdapter(Class adapter) {
if (ICLanguageKeywords.class.equals(adapter))
return this;
return
super.getAdapter(adapter);
}
HTH,
Toni
Thank you for your quick answer!
I've added C++ content-types to my language. Now this
part looks like:
<extension
id="сppteskkeywords"
name="C++ Language Extension"
point="org.eclipse.cdt.core.language">
<language
class="cppteskpluginide.Keywords"
id="CppTESKPluginIDE.language1"
name="CppTesK C++">
<contentType
id="org.eclipse.cdt.core.cxxSource"/>
<contentType
id="org.eclipse.cdt.core.cxxHeader"/>
</language>
</extension>
Nevertheless, it does not work again - no item "CppTesK
C++" in preference, no syntax highlight.
May be I miss something else?
17.10.2011 20:15, Eugene Ostroukhov пишет:
To me it looks like you did not
associate your language with any particular
content-type - you need to add content-type subelement
to your language.
You
can also use the "C/C++/Language Mapping" preference
page to associate your language with particular file
type.
On Oct 17, 2011, at 8:43 AM, Sergey Smolov <ssedai@xxxxxxxxx>
wrote:
Hello,
List!
My name is Sergey Smolov and I am need your help.
My purpose is to make a syntax highlight for our
extension of C++ language. This extension just
contain about a one hundred of macro directives
with different functionality.
For achieving such purpose I've started developing
a plugin. Here is my "plugin.xml":
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension
id="сppteskkeywords"
name="CDT Language"
point="org.eclipse.cdt.core.language">
<language
class="cppteskpluginide.Keywords"
id="CppTESKPluginIDE.language1"
name="CppTesKLanguage">
</language>
</extension>
</plugi
and here is class, that contains necessary
keywords:
import
org.eclipse.cdt.core.dom.ast.gnu.c.GCCLanguage;
import
org.eclipse.cdt.core.model.ICLanguageKeywords;
public class Keywords extends GCCLanguage
implements ICLanguageKeywords
{
public Object getAdapter(Keywords keywords)
{
return getAdapter(this);
}
public String[] getKeywords()
{
String[] array = new String[14];
/ array elements initialization
return array;
}
public String[] getBuiltinTypes()
{
String[] array = new String[4];
/ array elements initialization
return array;
}
public String[] getPreprocessorKeywords()
{
String[] array = new String[152];
// array elements initialization
return array;
}
The main problem is that it didn't work in proper
way, so I'd like to ask you the following
question: what is the way for adding new keywords
and making them highlighted like C++? May be I
miss something?
You will be much obliged if you will help me.
Thanks in advance!
--
Sincerely yours,
Sergey Smolov
ISP RAS
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev
--
Sincerely yours,
Sergey Smolov
ISP RAS
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev
--
Sincerely yours,
Sergey Smolov
ISP RAS
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev
--
Sincerely yours,
Sergey Smolov
ISP RAS