Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] Syntax coloring of new keywords

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

 

From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Sergey Smolov
Sent: Tuesday, October 18, 2011 12:51
To: CDT General developers list.
Subject: Re: [cdt-dev] Syntax coloring of new keywords

 

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

 
 
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev




-- 
Sincerely yours,
Sergey Smolov
ISP RAS

Back to the top