/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package org.nbstudio.syntax; import org.nbstudio.syntax.cls.CLSLanguageHierarchy; import org.nbstudio.syntax.cls.clsLexer; import org.nbstudio.syntax.mac.macLanguageHierarchy; import org.nbstudio.syntax.xdata.xdataLanguageHierarchy; import org.netbeans.api.lexer.InputAttributes; import org.netbeans.api.lexer.Language; import org.netbeans.api.lexer.LanguagePath; import org.netbeans.api.lexer.Token; import org.netbeans.spi.lexer.LanguageEmbedding; import org.netbeans.spi.lexer.LanguageProvider; /** * * @author daimor */ @org.openide.util.lookup.ServiceProvider(service = org.netbeans.spi.lexer.LanguageProvider.class) public class LangProvider extends LanguageProvider { @Override public Language<?> findLanguage(String mimeType) { if ("text/isc-mac".equals(mimeType)) { return new macLanguageHierarchy().language(); } if ("text/isc-cls".equals(mimeType)) { return new CLSLanguageHierarchy().language(); } if ("text/isc-xdata".equals(mimeType)) { return new xdataLanguageHierarchy().language(); } return null; } @Override public LanguageEmbedding<?> findLanguageEmbedding(Token<?> token, LanguagePath languagePath, InputAttributes inputAttributes) { // Logger.Log("findEmbedding: " + languagePath.mimePath() + " - " + token.id().name()); if (languagePath.mimePath().equals("text/isc-cls")) { if (CLSLanguageHierarchy.getToken(clsLexer.MethodDeclaration) == token.id()) { return LanguageEmbedding.create(new macLanguageHierarchy().language(), 1, 1); } else if (CLSLanguageHierarchy.getToken(clsLexer.XDataDeclaration) == token.id()) { return LanguageEmbedding.create(new xdataLanguageHierarchy().language(), 1, 1); } } return null; } }