Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 220168 Details for
Bug 385385
Selecting outline element leads to a too large comment selection
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Fix
0001-bug-385385-Selecting-outline-element-leads-to-a-too-.patch (text/plain), 5.58 KB, created by
Kevin KIN-FOO
on 2012-08-22 17:47:04 EDT
(
hide
)
Description:
Fix
Filename:
MIME Type:
Creator:
Kevin KIN-FOO
Created:
2012-08-22 17:47:04 EDT
Size:
5.58 KB
patch
obsolete
>From a63a85cae2edec5931b868b8149742436c456b24 Mon Sep 17 00:00:00 2001 >From: Kevin KIN-FOO <kkinfoo@sierrawireless.com> >Date: Wed, 22 Aug 2012 23:43:40 +0200 >Subject: [PATCH] bug 385385: Selecting outline element leads to a too large > comment selection > >--- > .../koneki/ldt/ui/internal/editor/LuaEditor.java | 91 ++++++++++++++++++++ > 1 file changed, 91 insertions(+) > >diff --git a/plugins/org.eclipse.koneki.ldt.ui/src/org/eclipse/koneki/ldt/ui/internal/editor/LuaEditor.java b/plugins/org.eclipse.koneki.ldt.ui/src/org/eclipse/koneki/ldt/ui/internal/editor/LuaEditor.java >index 26e744e..7a969a3 100644 >--- a/plugins/org.eclipse.koneki.ldt.ui/src/org/eclipse/koneki/ldt/ui/internal/editor/LuaEditor.java >+++ b/plugins/org.eclipse.koneki.ldt.ui/src/org/eclipse/koneki/ldt/ui/internal/editor/LuaEditor.java >@@ -12,8 +12,15 @@ > package org.eclipse.koneki.ldt.ui.internal.editor; > > import org.eclipse.dltk.core.IDLTKLanguageToolkit; >+import org.eclipse.dltk.core.IImportDeclaration; >+import org.eclipse.dltk.core.ILocalVariable; >+import org.eclipse.dltk.core.IMember; > import org.eclipse.dltk.core.IModelElement; >+import org.eclipse.dltk.core.IPackageDeclaration; > import org.eclipse.dltk.core.ISourceModule; >+import org.eclipse.dltk.core.ISourceRange; >+import org.eclipse.dltk.core.ISourceReference; >+import org.eclipse.dltk.core.ModelException; > import org.eclipse.dltk.internal.ui.editor.BracketInserter; > import org.eclipse.dltk.internal.ui.editor.ScriptEditor; > import org.eclipse.dltk.internal.ui.editor.ScriptOutlinePage; >@@ -24,9 +31,11 @@ import org.eclipse.jface.preference.IPreferenceStore; > import org.eclipse.jface.text.IDocument; > import org.eclipse.jface.text.IDocumentExtension3; > import org.eclipse.jface.text.ITextViewerExtension; >+import org.eclipse.jface.text.TextSelection; > import org.eclipse.jface.text.source.DefaultCharacterPairMatcher; > import org.eclipse.jface.text.source.ICharacterPairMatcher; > import org.eclipse.jface.text.source.ISourceViewer; >+import org.eclipse.jface.viewers.ISelection; > import org.eclipse.jface.viewers.SelectionChangedEvent; > import org.eclipse.koneki.ldt.core.LuaUtils; > import org.eclipse.koneki.ldt.core.internal.LuaLanguageToolkit; >@@ -35,6 +44,7 @@ import org.eclipse.koneki.ldt.ui.internal.editor.navigation.LuaOutlinePage; > import org.eclipse.koneki.ldt.ui.internal.editor.text.ILuaPartitions; > import org.eclipse.koneki.ldt.ui.internal.editor.text.LuaBracketInserter; > import org.eclipse.koneki.ldt.ui.internal.editor.text.LuaTextTools; >+import org.eclipse.swt.custom.StyledText; > import org.eclipse.swt.widgets.Composite; > import org.eclipse.ui.IEditorInput; > import org.eclipse.ui.texteditor.ChainedPreferenceStore; >@@ -163,4 +173,85 @@ public class LuaEditor extends ScriptEditor { > // Pass typed character to auto insert object > ((ITextViewerExtension) sourceViewer).prependVerifyKeyListener(bracketInserter); > } >+ >+ /** >+ * This a duplicate {@link ScriptEditor#setSelection(IModelElement, boolean)} which uses {@link String#length()}, not suitable for the inclusive >+ * Lua strings our models are made from. >+ * >+ * To adapt it, they are just some "- 1" after some {@link String#length()}. >+ */ >+ // CHECKSTYLE NLS: OFF >+ @Override >+ protected void setSelection(ISourceReference reference, boolean moveCursor) { >+ if (getSelectionProvider() == null) >+ return; >+ ISelection selection = getSelectionProvider().getSelection(); >+ if (selection instanceof TextSelection) { >+ TextSelection textSelection = (TextSelection) selection; >+ // PR 39995: [navigation] Forward history cleared after going back >+ // in navigation history: >+ // mark only in navigation history if the cursor is being moved >+ // (which it isn't if >+ // this is called from a PostSelectionEvent that should only update >+ // the magnet) >+ if (moveCursor && (textSelection.getOffset() != 0 || textSelection.getLength() != 0)) >+ markInNavigationHistory(); >+ } >+ if (reference != null) { >+ StyledText textWidget = null; >+ ISourceViewer sourceViewer = getSourceViewer(); >+ if (sourceViewer != null) >+ textWidget = sourceViewer.getTextWidget(); >+ if (textWidget == null) >+ return; >+ try { >+ ISourceRange range = null; >+ range = reference.getSourceRange(); >+ if (range == null) >+ return; >+ int offset = range.getOffset(); >+ int length = range.getLength() - 1; >+ if (offset < 0 || length < 0) >+ return; >+ setHighlightRange(offset, length, moveCursor); >+ if (!moveCursor) >+ return; >+ offset = -1; >+ length = -1; >+ if (reference instanceof IMember) { >+ range = ((IMember) reference).getNameRange(); >+ if (range != null) { >+ offset = range.getOffset(); >+ length = range.getLength() - 1; >+ } >+ } else if (reference instanceof ILocalVariable) { >+ range = ((ILocalVariable) reference).getNameRange(); >+ if (range != null) { >+ offset = range.getOffset(); >+ length = range.getLength() - 1; >+ } >+ } else if (reference instanceof IImportDeclaration || reference instanceof IPackageDeclaration) { >+ // range is still getSourceRange() >+ offset = range.getOffset(); >+ length = range.getLength() - 1; >+ } >+ if (offset > -1 && length > 0) { >+ try { >+ textWidget.setRedraw(false); >+ sourceViewer.revealRange(offset, length); >+ sourceViewer.setSelectedRange(offset, length); >+ } finally { >+ textWidget.setRedraw(true); >+ } >+ markInNavigationHistory(); >+ } >+ } catch (ModelException x) { >+ } catch (IllegalArgumentException x) { >+ } >+ } else if (moveCursor) { >+ resetHighlightRange(); >+ markInNavigationHistory(); >+ } >+ } >+ // CHECKSTYLE NLS: ON > } >\ No newline at end of file >-- >1.7.9.5 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 385385
:
218859
|
220168
|
220169
|
220170