Search in sources :

Example 26 with DefaultDamagerRepairer

use of org.eclipse.jface.text.rules.DefaultDamagerRepairer in project dbeaver by dbeaver.

the class JSONSourceViewerConfiguration method getPresentationReconciler.

@Override
public IPresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer) {
    ColorRegistry colorRegistry = UIUtils.getColorRegistry();
    PresentationReconciler reconciler = new PresentationReconciler();
    reconciler.setDocumentPartitioning(getConfiguredDocumentPartitioning(sourceViewer));
    DefaultDamagerRepairer dr = new DefaultDamagerRepairer(jsonScanner);
    reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
    reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);
    NonRuleBasedDamagerRepairer ndr = new NonRuleBasedDamagerRepairer(new TextAttribute(colorRegistry.get(SQLConstants.CONFIG_COLOR_STRING)));
    reconciler.setDamager(ndr, JSONPartitionScanner.JSON_STRING);
    reconciler.setRepairer(ndr, JSONPartitionScanner.JSON_STRING);
    return reconciler;
}
Also used : ColorRegistry(org.eclipse.jface.resource.ColorRegistry) TextAttribute(org.eclipse.jface.text.TextAttribute) DefaultDamagerRepairer(org.eclipse.jface.text.rules.DefaultDamagerRepairer) IPresentationReconciler(org.eclipse.jface.text.presentation.IPresentationReconciler) PresentationReconciler(org.eclipse.jface.text.presentation.PresentationReconciler) NonRuleBasedDamagerRepairer(org.jkiss.dbeaver.ui.editors.text.NonRuleBasedDamagerRepairer)

Example 27 with DefaultDamagerRepairer

use of org.eclipse.jface.text.rules.DefaultDamagerRepairer in project dbeaver by dbeaver.

the class SQLEditorSourceViewerConfiguration method getPresentationReconciler.

/**
 * Creates, configures, and returns a presentation reconciler to help with
 * document changes.
 *
 * @see org.eclipse.jface.text.source.SourceViewerConfiguration#getPresentationReconciler(ISourceViewer)
 */
@Override
public IPresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer) {
    // Create a presentation reconciler to handle handle document changes.
    PresentationReconciler reconciler = new PresentationReconciler();
    String docPartitioning = getConfiguredDocumentPartitioning(sourceViewer);
    reconciler.setDocumentPartitioning(docPartitioning);
    // Add a "damager-repairer" for changes in default text (SQL code).
    DefaultDamagerRepairer dr = new DefaultDamagerRepairer(ruleManager);
    reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
    reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);
    // rule for multiline comments
    // We just need a scanner that does nothing but returns a token with
    // the corresponding text attributes
    addContentTypeDamageRepairer(reconciler, SQLParserPartitions.CONTENT_TYPE_SQL_MULTILINE_COMMENT, SQLConstants.CONFIG_COLOR_COMMENT);
    // Add a "damager-repairer" for changes within one-line SQL comments.
    addContentTypeDamageRepairer(reconciler, SQLParserPartitions.CONTENT_TYPE_SQL_COMMENT, SQLConstants.CONFIG_COLOR_COMMENT);
    // Add a "damager-repairer" for changes within quoted literals.
    addContentTypeDamageRepairer(reconciler, SQLParserPartitions.CONTENT_TYPE_SQL_STRING, SQLConstants.CONFIG_COLOR_STRING);
    // Add a "damager-repairer" for changes within quoted literals.
    addContentTypeDamageRepairer(reconciler, SQLParserPartitions.CONTENT_TYPE_SQL_QUOTED, SQLConstants.CONFIG_COLOR_DATATYPE);
    return reconciler;
}
Also used : DefaultDamagerRepairer(org.eclipse.jface.text.rules.DefaultDamagerRepairer) IPresentationReconciler(org.eclipse.jface.text.presentation.IPresentationReconciler) PresentationReconciler(org.eclipse.jface.text.presentation.PresentationReconciler)

Example 28 with DefaultDamagerRepairer

use of org.eclipse.jface.text.rules.DefaultDamagerRepairer in project egit by eclipse.

the class GitHistoryPage method createControl.

@Override
public void createControl(final Composite parent) {
    trace = GitTraceLocation.HISTORYVIEW.isActive();
    if (trace)
        GitTraceLocation.getTrace().traceEntry(GitTraceLocation.HISTORYVIEW.getLocation());
    attachSelectionTracker();
    historyControl = createMainPanel(parent);
    warningComposite = new Composite(historyControl, SWT.NONE);
    warningComposite.setLayout(new GridLayout(2, false));
    warningComposite.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));
    warningLabel = new CLabel(warningComposite, SWT.NONE);
    warningLabel.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_WARN_TSK));
    warningLabel.setToolTipText(UIText.GitHistoryPage_IncompleteListTooltip);
    Link preferencesLink = new Link(warningComposite, SWT.NONE);
    preferencesLink.setText(UIText.GitHistoryPage_PreferencesLink);
    preferencesLink.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            // $NON-NLS-1$
            String preferencePageId = "org.eclipse.egit.ui.internal.preferences.HistoryPreferencePage";
            PreferenceDialog dialog = PreferencesUtil.createPreferenceDialogOn(getSite().getShell(), preferencePageId, new String[] { preferencePageId }, null);
            dialog.open();
        }
    });
    GridDataFactory.fillDefaults().grab(true, true).applyTo(historyControl);
    graphDetailSplit = new SashForm(historyControl, SWT.VERTICAL);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(graphDetailSplit);
    graph = new CommitGraphTable(graphDetailSplit, getSite(), popupMgr, this, resources);
    Activator.getDefault().getPreferenceStore().addPropertyChangeListener(listener);
    revInfoSplit = new SashForm(graphDetailSplit, SWT.HORIZONTAL);
    commentAndDiffScrolledComposite = new ScrolledComposite(revInfoSplit, SWT.H_SCROLL | SWT.V_SCROLL);
    commentAndDiffScrolledComposite.setExpandHorizontal(true);
    commentAndDiffScrolledComposite.setExpandVertical(true);
    commentAndDiffComposite = new Composite(commentAndDiffScrolledComposite, SWT.NONE);
    commentAndDiffScrolledComposite.setContent(commentAndDiffComposite);
    commentAndDiffComposite.setLayout(GridLayoutFactory.fillDefaults().create());
    commentViewer = new CommitMessageViewer(commentAndDiffComposite, getPartSite());
    commentViewer.getControl().setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());
    commentViewer.addTextListener(new ITextListener() {

        @Override
        public void textChanged(TextEvent event) {
            resizeCommentAndDiffScrolledComposite();
        }
    });
    commentAndDiffComposite.setBackground(commentViewer.getControl().getBackground());
    HyperlinkSourceViewer.Configuration configuration = new HyperlinkSourceViewer.Configuration(EditorsUI.getPreferenceStore()) {

        @Override
        public int getHyperlinkStateMask(ISourceViewer sourceViewer) {
            return SWT.NONE;
        }

        @Override
        protected IHyperlinkDetector[] internalGetHyperlinkDetectors(ISourceViewer sourceViewer) {
            IHyperlinkDetector[] registered = super.internalGetHyperlinkDetectors(sourceViewer);
            // want those to show always.
            if (registered == null) {
                return new IHyperlinkDetector[] { new CommitMessageViewer.KnownHyperlinksDetector() };
            } else {
                IHyperlinkDetector[] result = new IHyperlinkDetector[registered.length + 1];
                System.arraycopy(registered, 0, result, 0, registered.length);
                result[registered.length] = new CommitMessageViewer.KnownHyperlinksDetector();
                return result;
            }
        }

        @Override
        public String[] getConfiguredContentTypes(ISourceViewer sourceViewer) {
            return new String[] { IDocument.DEFAULT_CONTENT_TYPE, CommitMessageViewer.HEADER_CONTENT_TYPE, CommitMessageViewer.FOOTER_CONTENT_TYPE };
        }

        @Override
        public IPresentationReconciler getPresentationReconciler(ISourceViewer viewer) {
            PresentationReconciler reconciler = new PresentationReconciler();
            reconciler.setDocumentPartitioning(getConfiguredDocumentPartitioning(viewer));
            DefaultDamagerRepairer hyperlinkDamagerRepairer = new DefaultDamagerRepairer(new HyperlinkTokenScanner(this, viewer));
            reconciler.setDamager(hyperlinkDamagerRepairer, IDocument.DEFAULT_CONTENT_TYPE);
            reconciler.setRepairer(hyperlinkDamagerRepairer, IDocument.DEFAULT_CONTENT_TYPE);
            TextAttribute headerDefault = new TextAttribute(PlatformUI.getWorkbench().getDisplay().getSystemColor(SWT.COLOR_DARK_GRAY));
            DefaultDamagerRepairer headerDamagerRepairer = new DefaultDamagerRepairer(new HyperlinkTokenScanner(this, viewer, headerDefault));
            reconciler.setDamager(headerDamagerRepairer, CommitMessageViewer.HEADER_CONTENT_TYPE);
            reconciler.setRepairer(headerDamagerRepairer, CommitMessageViewer.HEADER_CONTENT_TYPE);
            DefaultDamagerRepairer footerDamagerRepairer = new DefaultDamagerRepairer(new FooterTokenScanner(this, viewer));
            reconciler.setDamager(footerDamagerRepairer, CommitMessageViewer.FOOTER_CONTENT_TYPE);
            reconciler.setRepairer(footerDamagerRepairer, CommitMessageViewer.FOOTER_CONTENT_TYPE);
            return reconciler;
        }
    };
    commentViewer.configure(configuration);
    diffViewer = new DiffViewer(commentAndDiffComposite, null, SWT.NONE);
    diffViewer.configure(new DiffViewer.Configuration(EditorsUI.getPreferenceStore()));
    diffViewer.getControl().setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());
    setWrap(store.getBoolean(UIPreferences.RESOURCEHISTORY_SHOW_COMMENT_WRAP));
    commentAndDiffScrolledComposite.addControlListener(new ControlAdapter() {

        @Override
        public void controlResized(ControlEvent e) {
            if (!resizing && commentViewer.getTextWidget().getWordWrap()) {
                resizeCommentAndDiffScrolledComposite();
            }
        }
    });
    fileViewer = new CommitFileDiffViewer(revInfoSplit, getSite());
    fileViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            ISelection selection = event.getSelection();
            List<FileDiff> diffs = new ArrayList<>();
            if (selection instanceof IStructuredSelection) {
                IStructuredSelection sel = (IStructuredSelection) selection;
                for (Object obj : sel.toList()) if (obj instanceof FileDiff)
                    diffs.add((FileDiff) obj);
            }
            formatDiffs(diffs);
        }
    });
    layoutSashForm(graphDetailSplit, UIPreferences.RESOURCEHISTORY_GRAPH_SPLIT);
    layoutSashForm(revInfoSplit, UIPreferences.RESOURCEHISTORY_REV_SPLIT);
    attachCommitSelectionChanged();
    initActions();
    getSite().setSelectionProvider(new RepositorySelectionProvider(graph.getTableView(), () -> {
        HistoryPageInput myInput = getInputInternal();
        return myInput != null ? myInput.getRepository() : null;
    }));
    getSite().registerContextMenu(POPUP_ID, popupMgr, graph.getTableView());
    // Track which of our controls has the focus, so that we can focus the
    // last focused one in setFocus().
    focusTracker = new FocusTracker();
    trackFocus(graph.getControl());
    trackFocus(diffViewer.getControl());
    trackFocus(commentViewer.getControl());
    trackFocus(fileViewer.getControl());
    layout();
    myRefsChangedHandle = Repository.getGlobalListenerList().addRefsChangedListener(this);
    IToolBarManager manager = getSite().getActionBars().getToolBarManager();
    searchBar = new // $NON-NLS-1$
    SearchBar(// $NON-NLS-1$
    GitHistoryPage.class.getName() + ".searchBar", graph, actions.findAction, getSite().getActionBars());
    // $NON-NLS-1$
    manager.prependToGroup("org.eclipse.team.ui.historyView", searchBar);
    getSite().getActionBars().updateActionBars();
    if (trace)
        GitTraceLocation.getTrace().traceExit(GitTraceLocation.HISTORYVIEW.getLocation());
}
Also used : CLabel(org.eclipse.swt.custom.CLabel) ITextListener(org.eclipse.jface.text.ITextListener) SourceViewerConfiguration(org.eclipse.jface.text.source.SourceViewerConfiguration) ControlAdapter(org.eclipse.swt.events.ControlAdapter) TextAttribute(org.eclipse.jface.text.TextAttribute) RepositorySelectionProvider(org.eclipse.egit.ui.internal.selection.RepositorySelectionProvider) DefaultDamagerRepairer(org.eclipse.jface.text.rules.DefaultDamagerRepairer) SelectionChangedEvent(org.eclipse.jface.viewers.SelectionChangedEvent) FocusTracker(org.eclipse.egit.ui.internal.commit.FocusTracker) HyperlinkTokenScanner(org.eclipse.egit.ui.internal.dialogs.HyperlinkTokenScanner) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) GridLayout(org.eclipse.swt.layout.GridLayout) PreferenceDialog(org.eclipse.jface.preference.PreferenceDialog) SelectionEvent(org.eclipse.swt.events.SelectionEvent) ISelection(org.eclipse.jface.viewers.ISelection) ScrolledComposite(org.eclipse.swt.custom.ScrolledComposite) IShowInTargetList(org.eclipse.ui.part.IShowInTargetList) ArrayList(java.util.ArrayList) List(java.util.List) PresentationReconciler(org.eclipse.jface.text.presentation.PresentationReconciler) IPresentationReconciler(org.eclipse.jface.text.presentation.IPresentationReconciler) TextEvent(org.eclipse.jface.text.TextEvent) Composite(org.eclipse.swt.widgets.Composite) ScrolledComposite(org.eclipse.swt.custom.ScrolledComposite) IHyperlinkDetector(org.eclipse.jface.text.hyperlink.IHyperlinkDetector) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) ISelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener) DiffViewer(org.eclipse.egit.ui.internal.commit.DiffViewer) SashForm(org.eclipse.swt.custom.SashForm) HyperlinkSourceViewer(org.eclipse.egit.ui.internal.dialogs.HyperlinkSourceViewer) IToolBarManager(org.eclipse.jface.action.IToolBarManager) GridData(org.eclipse.swt.layout.GridData) RevObject(org.eclipse.jgit.revwalk.RevObject) ISourceViewer(org.eclipse.jface.text.source.ISourceViewer) ControlEvent(org.eclipse.swt.events.ControlEvent) Link(org.eclipse.swt.widgets.Link)

Example 29 with DefaultDamagerRepairer

use of org.eclipse.jface.text.rules.DefaultDamagerRepairer in project mylyn.docs by eclipse.

the class CssConfiguration method getPresentationReconciler.

@Override
public IPresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer) {
    PresentationReconciler reconciler = new PresentationReconciler();
    DefaultDamagerRepairer dr = new DefaultDamagerRepairer(getCssTokenScanner());
    reconciler.setDamager(dr, CssPartitionScanner.CONTENT_TYPE_BLOCK);
    reconciler.setRepairer(dr, CssPartitionScanner.CONTENT_TYPE_BLOCK);
    dr = new DefaultDamagerRepairer(getCssScanner());
    reconciler.setDamager(dr, IDocument.DEFAULT_CONTENT_TYPE);
    reconciler.setRepairer(dr, IDocument.DEFAULT_CONTENT_TYPE);
    CommentDamagerRepairer commentDamagerRepairer = new CommentDamagerRepairer(new TextAttribute(colorRegistry.get(Colors.KEY_COMMENT)));
    reconciler.setDamager(commentDamagerRepairer, CssPartitionScanner.CONTENT_TYPE_COMMENT);
    reconciler.setRepairer(commentDamagerRepairer, CssPartitionScanner.CONTENT_TYPE_COMMENT);
    return reconciler;
}
Also used : TextAttribute(org.eclipse.jface.text.TextAttribute) DefaultDamagerRepairer(org.eclipse.jface.text.rules.DefaultDamagerRepairer) PresentationReconciler(org.eclipse.jface.text.presentation.PresentationReconciler) IPresentationReconciler(org.eclipse.jface.text.presentation.IPresentationReconciler)

Example 30 with DefaultDamagerRepairer

use of org.eclipse.jface.text.rules.DefaultDamagerRepairer in project bndtools by bndtools.

the class BndSourceViewerConfiguration method configureReconciler.

private static void configureReconciler(PresentationReconciler reconciler, String partitionType, ITokenScanner scanner) {
    DefaultDamagerRepairer dr;
    dr = new DefaultDamagerRepairer(scanner);
    reconciler.setDamager(dr, partitionType);
    reconciler.setRepairer(dr, partitionType);
}
Also used : DefaultDamagerRepairer(org.eclipse.jface.text.rules.DefaultDamagerRepairer)

Aggregations

DefaultDamagerRepairer (org.eclipse.jface.text.rules.DefaultDamagerRepairer)34 IPresentationReconciler (org.eclipse.jface.text.presentation.IPresentationReconciler)30 PresentationReconciler (org.eclipse.jface.text.presentation.PresentationReconciler)30 TextAttribute (org.eclipse.jface.text.TextAttribute)14 RuleBasedScanner (org.eclipse.jface.text.rules.RuleBasedScanner)3 ErlDamagerRepairer (org.erlide.ui.editors.erl.scanner.ErlDamagerRepairer)3 NonRuleBasedDamagerRepairer (org.jkiss.dbeaver.ui.editors.text.NonRuleBasedDamagerRepairer)3 ColorRegistry (org.eclipse.jface.resource.ColorRegistry)2 PatternRule (org.eclipse.jface.text.rules.PatternRule)2 NonRuleBasedDamagerRepairer (com.cubrid.tool.editor.NonRuleBasedDamagerRepairer)1 ArrayList (java.util.ArrayList)1 List (java.util.List)1 HTMLTagDamagerRepairer (org.apache.syncope.ide.eclipse.plugin.editors.htmlhelpers.HTMLTagDamagerRepairer)1 JavaScriptDamagerRepairer (org.apache.syncope.ide.eclipse.plugin.editors.htmlhelpers.JavaScriptDamagerRepairer)1 DiffViewer (org.eclipse.egit.ui.internal.commit.DiffViewer)1 FocusTracker (org.eclipse.egit.ui.internal.commit.FocusTracker)1 HyperlinkSourceViewer (org.eclipse.egit.ui.internal.dialogs.HyperlinkSourceViewer)1 HyperlinkTokenScanner (org.eclipse.egit.ui.internal.dialogs.HyperlinkTokenScanner)1 RepositorySelectionProvider (org.eclipse.egit.ui.internal.selection.RepositorySelectionProvider)1 JavaDocScanner (org.eclipse.jdt.internal.ui.text.javadoc.JavaDocScanner)1