Skip to content

Commit ecfd4db

Browse files
committed
define search view codicons
1 parent 17fa69a commit ecfd4db

9 files changed

Lines changed: 56 additions & 24 deletions

File tree

src/vs/workbench/browser/parts/compositeBarActions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@ export class ActivityActionViewItem extends BaseActionViewItem {
321321
this.label.className = 'action-label';
322322

323323
if (this.activity.cssClass) {
324-
dom.addClass(this.label, this.activity.cssClass);
324+
dom.addClasses(this.label, this.activity.cssClass);
325325
}
326326

327327
if (this.options.icon && !this.activity.iconUrl) {

src/vs/workbench/contrib/search/browser/anythingQuickAccess.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ import { IEditorGroup } from 'vs/workbench/services/editor/common/editorGroupsSe
4949
import { getCodeEditor } from 'vs/editor/browser/editorBrowser';
5050
import { withNullAsUndefined } from 'vs/base/common/types';
5151
import { stripCodicons } from 'vs/base/common/codicons';
52+
import { Codicon } from 'vs/base/browser/ui/codicons/codicons';
5253

5354
interface IAnythingQuickPickItem extends IPickerQuickAccessItem, IQuickPickItemWithResource { }
5455

@@ -868,14 +869,14 @@ export class AnythingQuickAccessProvider extends PickerQuickAccessProvider<IAnyt
868869

869870
// Open to side / below
870871
buttons.push({
871-
iconClass: openSideBySideDirection === 'right' ? 'codicon-split-horizontal' : 'codicon-split-vertical',
872+
iconClass: openSideBySideDirection === 'right' ? Codicon.splitHorizontal.classNames : Codicon.splitVertical.classNames,
872873
tooltip: openSideBySideDirection === 'right' ? localize('openToSide', "Open to the Side") : localize('openToBottom', "Open to the Bottom")
873874
});
874875

875876
// Remove from History
876877
if (isEditorHistoryEntry) {
877878
buttons.push({
878-
iconClass: isDirty ? 'dirty-anything codicon-circle-filled' : 'codicon-close',
879+
iconClass: isDirty ? ('dirty-anything ' + Codicon.circleFilled.classNames) : Codicon.close.classNames,
879880
tooltip: localize('closeEditor', "Remove from Recently Opened"),
880881
alwaysVisible: isDirty
881882
});

src/vs/workbench/contrib/search/browser/search.contribution.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ import { AnythingQuickAccessProvider } from 'vs/workbench/contrib/search/browser
5555
import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
5656
import { AbstractGotoLineQuickAccessProvider } from 'vs/editor/contrib/quickAccess/gotoLineQuickAccess';
5757
import { GotoSymbolQuickAccessProvider } from 'vs/workbench/contrib/codeEditor/browser/quickaccess/gotoSymbolQuickAccess';
58+
import { searchViewIcon } from 'vs/workbench/contrib/search/browser/searchIcons';
5859

5960
registerSingleton(ISearchWorkbenchService, SearchWorkbenchService, true);
6061
registerSingleton(ISearchHistoryService, SearchHistoryService, true);
@@ -506,7 +507,7 @@ const viewContainer = Registry.as<IViewContainersRegistry>(ViewExtensions.ViewCo
506507
name: nls.localize('name', "Search"),
507508
ctorDescriptor: new SyncDescriptor(ViewPaneContainer, [VIEWLET_ID, `${VIEWLET_ID}.state`, { mergeViewWithContainerWhenSingleView: true, donotShowContainerTitleWhenMergedWithContainer: true }]),
508509
hideIfEmpty: true,
509-
icon: 'codicon-search',
510+
icon: searchViewIcon.classNames,
510511
order: 1
511512
}, ViewContainerLocation.Sidebar);
512513

src/vs/workbench/contrib/search/browser/searchActions.ts

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import { ITreeNavigator } from 'vs/base/browser/ui/tree/tree';
2828
import { IViewsService } from 'vs/workbench/common/views';
2929
import { SearchEditorInput } from 'vs/workbench/contrib/searchEditor/browser/searchEditorInput';
3030
import { SearchEditor } from 'vs/workbench/contrib/searchEditor/browser/searchEditor';
31+
import { searchRefreshIcon, searchCollapseAllIcon, searchExpandAllIcon, searchClearIcon, searchReplaceAllIcon, searchReplaceIcon, searchRemoveIcon, searchStopIcon } from 'vs/workbench/contrib/search/browser/searchIcons';
3132

3233
export function isSearchViewFocused(viewsService: IViewsService): boolean {
3334
const searchView = getSearchView(viewsService);
@@ -268,7 +269,7 @@ export class RefreshAction extends Action {
268269
constructor(id: string, label: string,
269270
@IViewsService private readonly viewsService: IViewsService
270271
) {
271-
super(id, label, 'search-action codicon-refresh');
272+
super(id, label, 'search-action ' + searchRefreshIcon.classNames);
272273
}
273274

274275
get enabled(): boolean {
@@ -298,7 +299,7 @@ export class CollapseDeepestExpandedLevelAction extends Action {
298299
constructor(id: string, label: string,
299300
@IViewsService private readonly viewsService: IViewsService
300301
) {
301-
super(id, label, 'search-action codicon-collapse-all');
302+
super(id, label, 'search-action ' + searchCollapseAllIcon.classNames);
302303
this.update();
303304
}
304305

@@ -354,7 +355,7 @@ export class ExpandAllAction extends Action {
354355
constructor(id: string, label: string,
355356
@IViewsService private readonly viewsService: IViewsService
356357
) {
357-
super(id, label, 'search-action codicon-expand-all');
358+
super(id, label, 'search-action ' + searchExpandAllIcon.classNames);
358359
this.update();
359360
}
360361

@@ -438,7 +439,7 @@ export class ClearSearchResultsAction extends Action {
438439
constructor(id: string, label: string,
439440
@IViewsService private readonly viewsService: IViewsService
440441
) {
441-
super(id, label, 'search-action codicon-clear-all');
442+
super(id, label, 'search-action ' + searchClearIcon.classNames);
442443
this.update();
443444
}
444445

@@ -464,7 +465,7 @@ export class CancelSearchAction extends Action {
464465
constructor(id: string, label: string,
465466
@IViewsService private readonly viewsService: IViewsService
466467
) {
467-
super(id, label, 'search-action codicon-search-stop');
468+
super(id, label, 'search-action ' + searchStopIcon.classNames);
468469
this.update();
469470
}
470471

@@ -599,7 +600,7 @@ export class RemoveAction extends AbstractSearchAndReplaceAction {
599600
private viewer: WorkbenchObjectTree<RenderableMatch>,
600601
private element: RenderableMatch
601602
) {
602-
super('remove', RemoveAction.LABEL, 'codicon-close');
603+
super('remove', RemoveAction.LABEL, searchRemoveIcon.classNames);
603604
}
604605

605606
run(): Promise<any> {
@@ -639,7 +640,7 @@ export class ReplaceAllAction extends AbstractSearchAndReplaceAction {
639640
private fileMatch: FileMatch,
640641
@IKeybindingService keyBindingService: IKeybindingService
641642
) {
642-
super(Constants.ReplaceAllInFileActionId, appendKeyBindingLabel(ReplaceAllAction.LABEL, keyBindingService.lookupKeybinding(Constants.ReplaceAllInFileActionId), keyBindingService), 'codicon-replace-all');
643+
super(Constants.ReplaceAllInFileActionId, appendKeyBindingLabel(ReplaceAllAction.LABEL, keyBindingService.lookupKeybinding(Constants.ReplaceAllInFileActionId), keyBindingService), searchReplaceAllIcon.classNames);
643644
}
644645

645646
run(): Promise<any> {
@@ -663,7 +664,7 @@ export class ReplaceAllInFolderAction extends AbstractSearchAndReplaceAction {
663664
constructor(private viewer: WorkbenchObjectTree<RenderableMatch>, private folderMatch: FolderMatch,
664665
@IKeybindingService keyBindingService: IKeybindingService
665666
) {
666-
super(Constants.ReplaceAllInFolderActionId, appendKeyBindingLabel(ReplaceAllInFolderAction.LABEL, keyBindingService.lookupKeybinding(Constants.ReplaceAllInFolderActionId), keyBindingService), 'codicon-replace-all');
667+
super(Constants.ReplaceAllInFolderActionId, appendKeyBindingLabel(ReplaceAllInFolderAction.LABEL, keyBindingService.lookupKeybinding(Constants.ReplaceAllInFolderActionId), keyBindingService), searchReplaceAllIcon.classNames);
667668
}
668669

669670
run(): Promise<any> {
@@ -686,7 +687,7 @@ export class ReplaceAction extends AbstractSearchAndReplaceAction {
686687
@IKeybindingService keyBindingService: IKeybindingService,
687688
@IEditorService private readonly editorService: IEditorService,
688689
@IConfigurationService private readonly configurationService: IConfigurationService) {
689-
super(Constants.ReplaceActionId, appendKeyBindingLabel(ReplaceAction.LABEL, keyBindingService.lookupKeybinding(Constants.ReplaceActionId), keyBindingService), 'codicon-replace');
690+
super(Constants.ReplaceActionId, appendKeyBindingLabel(ReplaceAction.LABEL, keyBindingService.lookupKeybinding(Constants.ReplaceActionId), keyBindingService), searchReplaceIcon.classNames);
690691
}
691692

692693
run(): Promise<any> {
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/*---------------------------------------------------------------------------------------------
2+
* Copyright (c) Microsoft Corporation. All rights reserved.
3+
* Licensed under the MIT License. See License.txt in the project root for license information.
4+
*--------------------------------------------------------------------------------------------*/
5+
6+
import { Codicon, registerIcon } from 'vs/base/browser/ui/codicons/codicons';
7+
8+
export const searchDetails = registerIcon('search-details', Codicon.ellipsis);
9+
10+
export const searchShowContextIcon = registerIcon('search-show-context', Codicon.listSelection);
11+
export const searchHideReplaceIcon = registerIcon('search-hide-replace', Codicon.chevronRight);
12+
export const searchShowReplaceIcon = registerIcon('search-show-replace', Codicon.chevronDown);
13+
export const searchReplaceAllIcon = registerIcon('search-replace-all', Codicon.replaceAll);
14+
export const searchReplaceIcon = registerIcon('search-replace-all', Codicon.replace);
15+
export const searchRemoveIcon = registerIcon('search-remove', Codicon.close);
16+
17+
export const searchRefreshIcon = registerIcon('search-refresh', Codicon.refresh);
18+
export const searchCollapseAllIcon = registerIcon('search-collapse-results', Codicon.collapseAll);
19+
export const searchExpandAllIcon = registerIcon('search-expand-results', Codicon.expandAll);
20+
export const searchClearIcon = registerIcon('search-clear-results', Codicon.expandAll);
21+
export const searchStopIcon = Codicon.searchStop;
22+
23+
export const searchViewIcon = Codicon.search;
24+

src/vs/workbench/contrib/search/browser/searchView.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ import { OpenSearchEditorAction, createEditorFromSearchResult } from 'vs/workben
6969
import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection';
7070
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
7171
import { Orientation } from 'vs/base/browser/ui/sash/sash';
72+
import { searchDetails } from 'vs/workbench/contrib/search/browser/searchIcons';
7273

7374
const $ = dom.$;
7475

@@ -282,7 +283,7 @@ export class SearchView extends ViewPane {
282283

283284
// Toggle query details button
284285
this.toggleQueryDetailsButton = dom.append(this.queryDetails,
285-
$('.more.codicon.codicon-ellipsis', { tabindex: 0, role: 'button', title: nls.localize('moreSearch', "Toggle Search Details") }));
286+
$('.more' + searchDetails.cssSelector, { tabindex: 0, role: 'button', title: nls.localize('moreSearch', "Toggle Search Details") }));
286287

287288
this._register(dom.addDisposableListener(this.toggleQueryDetailsButton, dom.EventType.CLICK, e => {
288289
dom.EventHelper.stop(e);

src/vs/workbench/contrib/search/browser/searchWidget.ts

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,11 @@ import { IAccessibilityService } from 'vs/platform/accessibility/common/accessib
3333
import { isMacintosh } from 'vs/base/common/platform';
3434
import { Checkbox } from 'vs/base/browser/ui/checkbox/checkbox';
3535
import { IViewsService } from 'vs/workbench/common/views';
36-
import { Codicon, registerIcon } from 'vs/base/browser/ui/codicons/codicons';
36+
import { searchReplaceAllIcon, searchHideReplaceIcon, searchShowContextIcon, searchShowReplaceIcon } from 'vs/workbench/contrib/search/browser/searchIcons';
3737

3838
/** Specified in searchview.css */
3939
export const SingleLineInputHeight = 24;
4040

41-
export const searchShowContextIcon = registerIcon('search-show-context', Codicon.listSelection);
42-
4341
export interface ISearchWidgetOptions {
4442
value?: string;
4543
replaceValue?: string;
@@ -58,7 +56,7 @@ class ReplaceAllAction extends Action {
5856
static readonly ID: string = 'search.action.replaceAll';
5957

6058
constructor(private _searchWidget: SearchWidget) {
61-
super(ReplaceAllAction.ID, '', 'codicon-replace-all', false);
59+
super(ReplaceAllAction.ID, '', searchReplaceAllIcon.classNames, false);
6260
}
6361

6462
set searchWidget(searchWidget: SearchWidget) {
@@ -294,8 +292,7 @@ export class SearchWidget extends Widget {
294292
};
295293
this.toggleReplaceButton = this._register(new Button(parent, opts));
296294
this.toggleReplaceButton.element.setAttribute('aria-expanded', 'false');
297-
this.toggleReplaceButton.element.classList.add('codicon');
298-
this.toggleReplaceButton.element.classList.add('codicon-chevron-right');
295+
dom.addClasses(this.toggleReplaceButton.element, searchHideReplaceIcon.classNames);
299296
this.toggleReplaceButton.icon = 'toggle-replace-button';
300297
// TODO@joh need to dispose this listener eventually
301298
this.toggleReplaceButton.onDidClick(() => this.onToggleReplaceButton());
@@ -429,8 +426,13 @@ export class SearchWidget extends Widget {
429426

430427
private onToggleReplaceButton(): void {
431428
dom.toggleClass(this.replaceContainer, 'disabled');
432-
dom.toggleClass(this.toggleReplaceButton.element, 'codicon-chevron-right');
433-
dom.toggleClass(this.toggleReplaceButton.element, 'codicon-chevron-down');
429+
if (this.isReplaceShown()) {
430+
dom.removeClasses(this.toggleReplaceButton.element, searchHideReplaceIcon.classNames);
431+
dom.addClasses(this.toggleReplaceButton.element, searchShowReplaceIcon.classNames);
432+
} else {
433+
dom.removeClasses(this.toggleReplaceButton.element, searchShowReplaceIcon.classNames);
434+
dom.addClasses(this.toggleReplaceButton.element, searchHideReplaceIcon.classNames);
435+
}
434436
this.toggleReplaceButton.element.setAttribute('aria-expanded', this.isReplaceShown() ? 'true' : 'false');
435437
this.updateReplaceActiveState();
436438
this._onReplaceToggled.fire();

src/vs/workbench/contrib/search/browser/symbolsQuickAccess.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import { getSelectionSearchString } from 'vs/editor/contrib/find/findController'
2323
import { withNullAsUndefined } from 'vs/base/common/types';
2424
import { prepareQuery, IPreparedQuery, scoreFuzzy2, pieceToQuery } from 'vs/base/common/fuzzyScorer';
2525
import { IMatch } from 'vs/base/common/filters';
26+
import { Codicon } from 'vs/base/browser/ui/codicons/codicons';
2627

2728
interface ISymbolQuickPickItem extends IPickerQuickAccessItem, IQuickPickItemWithResource {
2829
score?: number;
@@ -202,7 +203,7 @@ export class SymbolsQuickAccessProvider extends PickerQuickAccessProvider<ISymbo
202203
strikethrough: deprecated,
203204
buttons: [
204205
{
205-
iconClass: openSideBySideDirection === 'right' ? 'codicon-split-horizontal' : 'codicon-split-vertical',
206+
iconClass: openSideBySideDirection === 'right' ? Codicon.splitHorizontal.classNames : Codicon.splitVertical.classNames,
206207
tooltip: openSideBySideDirection === 'right' ? localize('openToSide', "Open to the Side") : localize('openToBottom', "Open to the Bottom")
207208
}
208209
],

src/vs/workbench/contrib/searchEditor/browser/searchEditor.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ import { serializeSearchResultForEditor } from 'vs/workbench/contrib/searchEdito
5050
import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService';
5151
import { IEditorService } from 'vs/workbench/services/editor/common/editorService';
5252
import { IPatternInfo, ISearchConfigurationProperties, ITextQuery } from 'vs/workbench/services/search/common/search';
53+
import { searchDetails } from 'vs/workbench/contrib/search/browser/searchIcons';
5354

5455
const RESULT_LINE_REGEX = /^(\s+)(\d+)(:| )(\s+)(.*)$/;
5556
const FILE_LINE_REGEX = /^(\S.*):$/;
@@ -135,7 +136,7 @@ export class SearchEditor extends BaseTextEditor {
135136
this.includesExcludesContainer = DOM.append(this.queryEditorContainer, DOM.$('.includes-excludes'));
136137

137138
// // Toggle query details button
138-
this.toggleQueryDetailsButton = DOM.append(this.includesExcludesContainer, DOM.$('.expand.codicon.codicon-ellipsis', { tabindex: 0, role: 'button', title: localize('moreSearch', "Toggle Search Details") }));
139+
this.toggleQueryDetailsButton = DOM.append(this.includesExcludesContainer, DOM.$('.expand' + searchDetails.cssSelector, { tabindex: 0, role: 'button', title: localize('moreSearch', "Toggle Search Details") }));
139140
this._register(DOM.addDisposableListener(this.toggleQueryDetailsButton, DOM.EventType.CLICK, e => {
140141
DOM.EventHelper.stop(e);
141142
this.toggleIncludesExcludes();

0 commit comments

Comments
 (0)