Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
8c17b44b
V
vscode
项目概览
xxadev
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
8c17b44b
编写于
9月 13, 2018
作者:
R
Rob Lourens
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix #51467
上级
dbeeecba
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
4 addition
and
105 deletion
+4
-105
src/vs/workbench/parts/search/browser/searchView.ts
src/vs/workbench/parts/search/browser/searchView.ts
+4
-38
src/vs/workbench/parts/search/common/queryBuilder.ts
src/vs/workbench/parts/search/common/queryBuilder.ts
+0
-22
src/vs/workbench/parts/search/test/common/queryBuilder.test.ts
...s/workbench/parts/search/test/common/queryBuilder.test.ts
+0
-45
未找到文件。
src/vs/workbench/parts/search/browser/searchView.ts
浏览文件 @
8c17b44b
...
@@ -182,43 +182,14 @@ export class SearchView extends Viewlet implements IViewlet, IPanel {
...
@@ -182,43 +182,14 @@ export class SearchView extends Viewlet implements IViewlet, IPanel {
const
history
=
this
.
searchHistoryService
.
load
();
const
history
=
this
.
searchHistoryService
.
load
();
const
filePatterns
=
this
.
viewletSettings
[
'
query.filePatterns
'
]
||
''
;
const
filePatterns
=
this
.
viewletSettings
[
'
query.filePatterns
'
]
||
''
;
le
t
patternExclusions
=
this
.
viewletSettings
[
'
query.folderExclusions
'
]
||
''
;
cons
t
patternExclusions
=
this
.
viewletSettings
[
'
query.folderExclusions
'
]
||
''
;
const
patternExclusionsHistory
:
string
[]
=
history
.
exclude
||
this
.
viewletSettings
[
'
query.folderExclusionsHistory
'
]
||
[];
const
patternExclusionsHistory
:
string
[]
=
history
.
exclude
||
[];
le
t
patternIncludes
=
this
.
viewletSettings
[
'
query.folderIncludes
'
]
||
''
;
cons
t
patternIncludes
=
this
.
viewletSettings
[
'
query.folderIncludes
'
]
||
''
;
let
patternIncludesHistory
:
string
[]
=
history
.
include
||
this
.
viewletSettings
[
'
query.folderIncludesHistory
'
]
||
[];
const
patternIncludesHistory
:
string
[]
=
history
.
include
||
[];
const
queryDetailsExpanded
=
this
.
viewletSettings
[
'
query.queryDetailsExpanded
'
]
||
''
;
const
queryDetailsExpanded
=
this
.
viewletSettings
[
'
query.queryDetailsExpanded
'
]
||
''
;
const
useExcludesAndIgnoreFiles
=
typeof
this
.
viewletSettings
[
'
query.useExcludesAndIgnoreFiles
'
]
===
'
boolean
'
?
const
useExcludesAndIgnoreFiles
=
typeof
this
.
viewletSettings
[
'
query.useExcludesAndIgnoreFiles
'
]
===
'
boolean
'
?
this
.
viewletSettings
[
'
query.useExcludesAndIgnoreFiles
'
]
:
true
;
this
.
viewletSettings
[
'
query.useExcludesAndIgnoreFiles
'
]
:
true
;
// Transition history from 1.22 combined include+exclude, to split include/exclude histories
const
patternIncludesHistoryWithoutExcludes
:
string
[]
=
[];
const
patternExcludesHistoryFromIncludes
:
string
[]
=
[];
patternIncludesHistory
.
forEach
(
historyEntry
=>
{
const
includeExclude
=
this
.
queryBuilder
.
parseIncludeExcludePattern
(
historyEntry
);
if
(
includeExclude
.
includePattern
)
{
patternIncludesHistoryWithoutExcludes
.
push
(
includeExclude
.
includePattern
);
}
if
(
includeExclude
.
excludePattern
)
{
patternExcludesHistoryFromIncludes
.
push
(
includeExclude
.
excludePattern
);
}
});
patternIncludesHistory
=
patternIncludesHistoryWithoutExcludes
;
patternExclusionsHistory
.
push
(...
patternExcludesHistoryFromIncludes
);
// Split combined include/exclude to split include/exclude boxes
const
includeExclude
=
this
.
queryBuilder
.
parseIncludeExcludePattern
(
patternIncludes
);
patternIncludes
=
includeExclude
.
includePattern
||
''
;
if
(
includeExclude
.
excludePattern
)
{
if
(
patternExclusions
)
{
patternExclusions
+=
'
,
'
+
includeExclude
.
excludePattern
;
}
else
{
patternExclusions
=
includeExclude
.
excludePattern
;
}
}
this
.
queryDetails
=
dom
.
append
(
this
.
searchWidgetsContainerElement
,
$
(
'
.query-details
'
));
this
.
queryDetails
=
dom
.
append
(
this
.
searchWidgetsContainerElement
,
$
(
'
.query-details
'
));
// Toggle query details button
// Toggle query details button
...
@@ -1534,15 +1505,10 @@ export class SearchView extends Viewlet implements IViewlet, IPanel {
...
@@ -1534,15 +1505,10 @@ export class SearchView extends Viewlet implements IViewlet, IPanel {
this
.
viewletSettings
[
'
query.folderIncludes
'
]
=
patternIncludes
;
this
.
viewletSettings
[
'
query.folderIncludes
'
]
=
patternIncludes
;
this
.
viewletSettings
[
'
query.useExcludesAndIgnoreFiles
'
]
=
useExcludesAndIgnoreFiles
;
this
.
viewletSettings
[
'
query.useExcludesAndIgnoreFiles
'
]
=
useExcludesAndIgnoreFiles
;
// Deprecated, remove these memento props a couple releases after 1.25
const
searchHistory
=
this
.
searchWidget
.
getSearchHistory
();
const
searchHistory
=
this
.
searchWidget
.
getSearchHistory
();
const
replaceHistory
=
this
.
searchWidget
.
getReplaceHistory
();
const
replaceHistory
=
this
.
searchWidget
.
getReplaceHistory
();
const
patternExcludesHistory
=
this
.
inputPatternExcludes
.
getHistory
();
const
patternExcludesHistory
=
this
.
inputPatternExcludes
.
getHistory
();
const
patternIncludesHistory
=
this
.
inputPatternIncludes
.
getHistory
();
const
patternIncludesHistory
=
this
.
inputPatternIncludes
.
getHistory
();
this
.
viewletSettings
[
'
query.searchHistory
'
]
=
searchHistory
;
this
.
viewletSettings
[
'
query.replaceHistory
'
]
=
replaceHistory
;
this
.
viewletSettings
[
'
query.folderExclusionsHistory
'
]
=
patternExcludesHistory
;
this
.
viewletSettings
[
'
query.folderIncludesHistory
'
]
=
patternIncludesHistory
;
this
.
searchHistoryService
.
save
({
this
.
searchHistoryService
.
save
({
search
:
searchHistory
,
search
:
searchHistory
,
...
...
src/vs/workbench/parts/search/common/queryBuilder.ts
浏览文件 @
8c17b44b
...
@@ -189,28 +189,6 @@ export class QueryBuilder {
...
@@ -189,28 +189,6 @@ export class QueryBuilder {
return
Object
.
keys
(
excludeExpression
).
length
?
excludeExpression
:
undefined
;
return
Object
.
keys
(
excludeExpression
).
length
?
excludeExpression
:
undefined
;
}
}
/**
* A helper that splits positive and negative patterns from a string that combines both.
*/
public
parseIncludeExcludePattern
(
pattern
:
string
):
{
includePattern
?:
string
,
excludePattern
?:
string
}
{
const
grouped
=
collections
.
groupBy
(
splitGlobPattern
(
pattern
),
s
=>
strings
.
startsWith
(
s
,
'
!
'
)
?
'
excludePattern
'
:
'
includePattern
'
);
const
result
=
{};
if
(
grouped
.
includePattern
)
{
result
[
'
includePattern
'
]
=
grouped
.
includePattern
.
join
(
'
,
'
);
}
if
(
grouped
.
excludePattern
)
{
result
[
'
excludePattern
'
]
=
grouped
.
excludePattern
.
map
(
s
=>
strings
.
ltrim
(
s
,
'
!
'
))
.
join
(
'
,
'
);
}
return
result
;
}
private
mergeExcludesFromFolderQueries
(
folderQueries
:
IFolderQuery
[]):
glob
.
IExpression
|
undefined
{
private
mergeExcludesFromFolderQueries
(
folderQueries
:
IFolderQuery
[]):
glob
.
IExpression
|
undefined
{
const
mergedExcludes
=
folderQueries
.
reduce
((
merged
:
glob
.
IExpression
,
fq
:
IFolderQuery
)
=>
{
const
mergedExcludes
=
folderQueries
.
reduce
((
merged
:
glob
.
IExpression
,
fq
:
IFolderQuery
)
=>
{
if
(
fq
.
excludePattern
)
{
if
(
fq
.
excludePattern
)
{
...
...
src/vs/workbench/parts/search/test/common/queryBuilder.test.ts
浏览文件 @
8c17b44b
...
@@ -764,51 +764,6 @@ suite('QueryBuilder', () => {
...
@@ -764,51 +764,6 @@ suite('QueryBuilder', () => {
assert
(
query
.
sortByScore
);
assert
(
query
.
sortByScore
);
});
});
});
});
suite
(
'
parseIncludeExcludePattern
'
,
()
=>
{
test
(
'
nothing
'
,
()
=>
{
assert
.
deepEqual
(
queryBuilder
.
parseIncludeExcludePattern
(
''
),
{});
});
test
(
'
includes
'
,
()
=>
{
assert
.
deepEqual
(
queryBuilder
.
parseIncludeExcludePattern
(
'
src
'
),
{
includePattern
:
'
src
'
});
assert
.
deepEqual
(
queryBuilder
.
parseIncludeExcludePattern
(
'
src, test
'
),
{
includePattern
:
'
src, test
'
});
});
test
(
'
excludes
'
,
()
=>
{
assert
.
deepEqual
(
queryBuilder
.
parseIncludeExcludePattern
(
'
!src
'
),
{
excludePattern
:
'
src
'
});
assert
.
deepEqual
(
queryBuilder
.
parseIncludeExcludePattern
(
'
!src, !test
'
),
{
excludePattern
:
'
src, test
'
});
});
test
(
'
includes and excludes
'
,
()
=>
{
assert
.
deepEqual
(
queryBuilder
.
parseIncludeExcludePattern
(
'
!src, test, !foo, bar
'
),
{
includePattern
:
'
test, bar
'
,
excludePattern
:
'
src, foo
'
});
});
});
});
});
function
assertEqualQueries
(
actual
:
ISearchQuery
,
expected
:
ISearchQuery
):
void
{
function
assertEqualQueries
(
actual
:
ISearchQuery
,
expected
:
ISearchQuery
):
void
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录