Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions bundles/org.eclipse.ui.workbench.texteditor/plugin.properties
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,21 @@ command.joinLines.name = Join Lines
command.openHyperlink.name= Open Hyperlink
command.openHyperlink.description= Opens the hyperlink at the caret location or opens a chooser if more than one hyperlink is available

command.findReplaceOverlay.searchForward.name= Find and Replace: Search Forward
command.findReplaceOverlay.searchBackward.name= Find and Replace: Search Backward
command.findReplaceOverlay.selectAll.name= Find and Replace: Select All Matches
command.findReplaceOverlay.replaceOne.name= Find and Replace: Replace
command.findReplaceOverlay.replaceAll.name= Find and Replace: Replace All
command.findReplaceOverlay.close.name= Find and Replace: Close
command.findReplaceOverlay.toggleReplace.name= Find and Replace: Toggle Replace Bar
command.findReplaceOverlay.toggleCaseSensitive.name= Find and Replace: Toggle Case Sensitive
command.findReplaceOverlay.toggleWholeWord.name= Find and Replace: Toggle Whole Word
command.findReplaceOverlay.toggleRegex.name= Find and Replace: Toggle Regular Expression
command.findReplaceOverlay.toggleSearchInSelection.name= Find and Replace: Toggle Search in Selection
context.findReplaceOverlay.name= Find and replace
context.findReplaceOverlay.searchFocused.name= Find and replace (search input focused)
context.findReplaceOverlay.replaceFocused.name= Find and replace (replace input focused)

Color.rangeIndicator= Range indicator color
Color.rangeIndicatorDesc= The color that is used for the ruler that marks the range of the current selected text block.

Expand Down
133 changes: 133 additions & 0 deletions bundles/org.eclipse.ui.workbench.texteditor/plugin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -507,6 +507,61 @@
description="%command.openHyperlink.description"
categoryId="org.eclipse.ui.category.textEditor"
id="org.eclipse.ui.edit.text.open.hyperlink">
</command>
<command
name="%command.findReplaceOverlay.searchForward.name"
categoryId="org.eclipse.ui.category.textEditor"
id="org.eclipse.ui.workbench.texteditor.findReplaceOverlay.searchForward">
</command>
<command
name="%command.findReplaceOverlay.searchBackward.name"
categoryId="org.eclipse.ui.category.textEditor"
id="org.eclipse.ui.workbench.texteditor.findReplaceOverlay.searchBackward">
</command>
<command
name="%command.findReplaceOverlay.selectAll.name"
categoryId="org.eclipse.ui.category.textEditor"
id="org.eclipse.ui.workbench.texteditor.findReplaceOverlay.selectAll">
</command>
<command
name="%command.findReplaceOverlay.replaceOne.name"
categoryId="org.eclipse.ui.category.textEditor"
id="org.eclipse.ui.workbench.texteditor.findReplaceOverlay.replaceOne">
</command>
<command
name="%command.findReplaceOverlay.replaceAll.name"
categoryId="org.eclipse.ui.category.textEditor"
id="org.eclipse.ui.workbench.texteditor.findReplaceOverlay.replaceAll">
</command>
<command
name="%command.findReplaceOverlay.close.name"
categoryId="org.eclipse.ui.category.textEditor"
id="org.eclipse.ui.workbench.texteditor.findReplaceOverlay.close">
</command>
<command
name="%command.findReplaceOverlay.toggleReplace.name"
categoryId="org.eclipse.ui.category.textEditor"
id="org.eclipse.ui.workbench.texteditor.findReplaceOverlay.toggleReplace">
</command>
<command
name="%command.findReplaceOverlay.toggleCaseSensitive.name"
categoryId="org.eclipse.ui.category.textEditor"
id="org.eclipse.ui.workbench.texteditor.findReplaceOverlay.toggleCaseSensitive">
</command>
<command
name="%command.findReplaceOverlay.toggleWholeWord.name"
categoryId="org.eclipse.ui.category.textEditor"
id="org.eclipse.ui.workbench.texteditor.findReplaceOverlay.toggleWholeWord">
</command>
<command
name="%command.findReplaceOverlay.toggleRegex.name"
categoryId="org.eclipse.ui.category.textEditor"
id="org.eclipse.ui.workbench.texteditor.findReplaceOverlay.toggleRegex">
</command>
<command
name="%command.findReplaceOverlay.toggleSearchInSelection.name"
categoryId="org.eclipse.ui.category.textEditor"
id="org.eclipse.ui.workbench.texteditor.findReplaceOverlay.toggleSearchInSelection">
</command>
</extension>

Expand Down Expand Up @@ -1500,4 +1555,82 @@
label="%CodeMining.show.ZWSP">
</codeMiningProvider>
</extension>

<extension
point="org.eclipse.ui.contexts">
<context
id="org.eclipse.ui.workbench.texteditor.findReplaceOverlay"
name="%context.findReplaceOverlay.name"
parentId="org.eclipse.ui.textEditorScope">
</context>
<context
id="org.eclipse.ui.workbench.texteditor.findReplaceOverlay.searchFocused"
name="%context.findReplaceOverlay.searchFocused.name"
parentId="org.eclipse.ui.workbench.texteditor.findReplaceOverlay">
</context>
<context
id="org.eclipse.ui.workbench.texteditor.findReplaceOverlay.replaceFocused"
name="%context.findReplaceOverlay.replaceFocused.name"
parentId="org.eclipse.ui.workbench.texteditor.findReplaceOverlay">
</context>
</extension>

<extension
point="org.eclipse.ui.bindings">
<key
commandId="org.eclipse.ui.workbench.texteditor.findReplaceOverlay.close"
contextId="org.eclipse.ui.workbench.texteditor.findReplaceOverlay"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
sequence="ESC"/>
<key
commandId="org.eclipse.ui.workbench.texteditor.findReplaceOverlay.toggleReplace"
contextId="org.eclipse.ui.workbench.texteditor.findReplaceOverlay"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
sequence="M1+R"/>
<key
commandId="org.eclipse.ui.workbench.texteditor.findReplaceOverlay.toggleCaseSensitive"
contextId="org.eclipse.ui.workbench.texteditor.findReplaceOverlay"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
sequence="M1+M2+C"/>
<key
commandId="org.eclipse.ui.workbench.texteditor.findReplaceOverlay.toggleWholeWord"
contextId="org.eclipse.ui.workbench.texteditor.findReplaceOverlay"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
sequence="M1+M2+D"/>
<key
commandId="org.eclipse.ui.workbench.texteditor.findReplaceOverlay.toggleRegex"
contextId="org.eclipse.ui.workbench.texteditor.findReplaceOverlay"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
sequence="M1+M2+P"/>
<key
commandId="org.eclipse.ui.workbench.texteditor.findReplaceOverlay.toggleSearchInSelection"
contextId="org.eclipse.ui.workbench.texteditor.findReplaceOverlay"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
sequence="M1+M2+I"/>
<key
commandId="org.eclipse.ui.workbench.texteditor.findReplaceOverlay.searchForward"
contextId="org.eclipse.ui.workbench.texteditor.findReplaceOverlay.searchFocused"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
sequence="CR"/>
<key
commandId="org.eclipse.ui.workbench.texteditor.findReplaceOverlay.searchBackward"
contextId="org.eclipse.ui.workbench.texteditor.findReplaceOverlay.searchFocused"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
sequence="M2+CR"/>
<key
commandId="org.eclipse.ui.workbench.texteditor.findReplaceOverlay.selectAll"
contextId="org.eclipse.ui.workbench.texteditor.findReplaceOverlay.searchFocused"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
sequence="M1+CR"/>
<key
commandId="org.eclipse.ui.workbench.texteditor.findReplaceOverlay.replaceOne"
contextId="org.eclipse.ui.workbench.texteditor.findReplaceOverlay.replaceFocused"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
sequence="CR"/>
<key
commandId="org.eclipse.ui.workbench.texteditor.findReplaceOverlay.replaceAll"
contextId="org.eclipse.ui.workbench.texteditor.findReplaceOverlay.replaceFocused"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
sequence="M1+CR"/>
</extension>
</plugin>
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,16 @@
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;

import org.eclipse.core.commands.HandlerEvent;
import org.eclipse.core.commands.IHandlerListener;

import org.eclipse.jface.layout.GridDataFactory;

class AccessibleToolItem {
private final ToolItem toolItem;

private String baseToolTipText;


AccessibleToolItem(Composite parent, int styleBits) {
ToolBar toolbar = new ToolBar(parent, SWT.FLAT | SWT.HORIZONTAL);
GridDataFactory.fillDefaults().grab(true, true).align(SWT.CENTER, SWT.CENTER).applyTo(toolbar);
Expand All @@ -51,6 +53,15 @@ void setToolTipText(String text) {

void setAction(FindReplaceOverlayAction action) {
setToolTipText(toolItem.getToolTipText());
toolItem.setEnabled(action.isEnabled());
action.addHandlerListener(new IHandlerListener() {
@Override
public void handlerChanged(HandlerEvent event) {
if (event.isEnabledChanged() && !toolItem.isDisposed()) {
toolItem.setEnabled(action.isEnabled());
}
}
});
toolItem.addSelectionListener(SelectionListener.widgetSelectedAdapter(__ -> action.execute()));
action.addShortcutHintListener(hint -> {
if (!toolItem.isDisposed()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,12 +104,8 @@ public ToolItem build() {
toolItem.setSelection(invertSearchOption ? !state : state);
}
});
toolItem.setEnabled(findReplaceLogic.isAvailable(searchOption));
findReplaceLogic.addSearchOptionAvailabilityChangedListener(searchOption, state -> {
if (!toolItem.isDisposed()) {
toolItem.setEnabled(state);
}
});
searchOptionAction.setAvailable(findReplaceLogic.isAvailable(searchOption));
findReplaceLogic.addSearchOptionAvailabilityChangedListener(searchOption, searchOptionAction::setAvailable);
return toolItem;
}
}
Expand Down
Loading
Loading