Package com.dci.intellij.dbn.language.common

Source Code of com.dci.intellij.dbn.language.common.DBSyntaxHighlighterProvider

package com.dci.intellij.dbn.language.common;

import com.dci.intellij.dbn.connection.ConnectionHandler;
import com.dci.intellij.dbn.connection.mapping.FileConnectionMappingManager;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.fileTypes.SyntaxHighlighter;
import com.intellij.openapi.fileTypes.SyntaxHighlighterProvider;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public class DBSyntaxHighlighterProvider implements SyntaxHighlighterProvider {
    @Nullable
    public SyntaxHighlighter create(@NotNull FileType fileType, @Nullable Project project, @Nullable VirtualFile virtualFile) {
        if (virtualFile != null) {
            fileType = virtualFile.getFileType();
        }
        if (fileType instanceof DBLanguageFileType) {
            DBLanguageFileType dbFileType = (DBLanguageFileType) fileType;
            DBLanguage language = (DBLanguage) dbFileType.getLanguage();

            DBLanguageDialect mainLanguageDialect = language.getMainLanguageDialect();
            if (project != null && virtualFile != null) {
                ConnectionHandler connectionHandler = FileConnectionMappingManager.getInstance(project).getActiveConnection(virtualFile);
                DBLanguageDialect languageDialect = connectionHandler == null ?
                        mainLanguageDialect :
                        connectionHandler.getLanguageDialect(language);
                return languageDialect == null ?
                        mainLanguageDialect.getSyntaxHighlighter() :
                        languageDialect.getSyntaxHighlighter();
            }

            return mainLanguageDialect.getSyntaxHighlighter();
        }

        return null;
    }
}
TOP

Related Classes of com.dci.intellij.dbn.language.common.DBSyntaxHighlighterProvider

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.