Package net.ishchenko.idea.nginx.psi.impl

Source Code of net.ishchenko.idea.nginx.psi.impl.NginxDirectiveValueManipulator

package net.ishchenko.idea.nginx.psi.impl;

import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.fileEditor.FileDocumentManager;
import com.intellij.openapi.util.TextRange;
import com.intellij.psi.AbstractElementManipulator;
import com.intellij.psi.PsiDocumentManager;
import com.intellij.util.IncorrectOperationException;
import net.ishchenko.idea.nginx.configurator.NginxServersConfiguration;
import net.ishchenko.idea.nginx.psi.NginxDirectiveValue;

/**
* Created by IntelliJ IDEA.
* User: Max
* Date: 24.08.2009
* Time: 14:48:06
*/
public class NginxDirectiveValueManipulator extends AbstractElementManipulator<NginxDirectiveValue> {

    /**
     * Some included file name has been changed. Changing value text and rebuilding configuration file types mapping
     */
    public NginxDirectiveValue handleContentChange(NginxDirectiveValue element, TextRange range, String newContent) throws IncorrectOperationException {

        String oldText = element.getText();
        String newText = oldText.substring(0, range.getStartOffset()) + newContent + oldText.substring(range.getEndOffset());
        Document document = FileDocumentManager.getInstance().getDocument(element.getContainingFile().getVirtualFile());
        document.replaceString(element.getTextRange().getStartOffset(), element.getTextRange().getEndOffset(), newText);
        PsiDocumentManager.getInstance(element.getProject()).commitDocument(document);

        NginxServersConfiguration nginxServersConfiguration = ApplicationManager.getApplication().getComponent(NginxServersConfiguration.class);
        nginxServersConfiguration.rebuildFilepaths();

        return element;

    }
}
TOP

Related Classes of net.ishchenko.idea.nginx.psi.impl.NginxDirectiveValueManipulator

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.