/* * Copyright (c) 2012, the Dart project authors. * * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * * http://www.eclipse.org/legal/epl-v10.html * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under * the License. */ package com.google.dart.tools.ui.web.json; import com.google.dart.tools.ui.web.utils.WebEditor; import org.eclipse.jface.text.IDocumentExtension3; import org.eclipse.jface.text.IRegion; import org.eclipse.jface.text.source.DefaultCharacterPairMatcher; import org.eclipse.jface.text.source.ICharacterPairMatcher; import org.eclipse.ui.IEditorInput; import org.eclipse.ui.texteditor.SourceViewerDecorationSupport; /** * An editor for json files. */ public class JsonEditor extends WebEditor { /** * Create a new JsonEditor. */ public JsonEditor() { setRulerContextMenuId("#DartJSONEditorRulerContext"); setSourceViewerConfiguration(new JsonSourceViewerConfiguration(this)); setDocumentProvider(new JsonDocumentProvider()); } @Override protected void configureSourceViewerDecorationSupport(SourceViewerDecorationSupport support) { ICharacterPairMatcher matcher = new DefaultCharacterPairMatcher( new char[] {'{', '}', '[', ']'}, IDocumentExtension3.DEFAULT_PARTITIONING); support.setCharacterPairMatcher(matcher); support.setMatchingCharacterPainterPreferenceKeys(MATCHING_BRACKETS, MATCHING_BRACKETS_COLOR); super.configureSourceViewerDecorationSupport(support); } @Override protected void handleDocumentModified() { } @Override protected void handleReconcilation(IRegion partition) { } protected boolean isManifestEditor() { IEditorInput input = getEditorInput(); if (input != null) { return "manifest.json".equals(input.getName()); } else { return false; } } @Override protected boolean isTabsToSpacesConversionEnabled() { return true; } }