Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
469043a5
V
vscode
项目概览
掘金者说
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
469043a5
编写于
12月 02, 2021
作者:
H
Henning Dieterichs
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
allowedCharacters: string -> allowedCharacters: Record<string, bool>
上级
093aa3c4
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
59 addition
and
27 deletion
+59
-27
src/vs/editor/common/config/editorOptions.ts
src/vs/editor/common/config/editorOptions.ts
+37
-11
src/vs/editor/contrib/unicodeHighlighter/unicodeHighlighter.ts
...s/editor/contrib/unicodeHighlighter/unicodeHighlighter.ts
+20
-14
src/vs/monaco.d.ts
src/vs/monaco.d.ts
+2
-2
未找到文件。
src/vs/editor/common/config/editorOptions.ts
浏览文件 @
469043a5
...
...
@@ -3312,9 +3312,9 @@ export interface IUnicodeHighlightOptions {
ambiguousCharacters
?:
boolean
;
includeComments
?:
boolean
|
InUntrustedWorkspace
;
/**
* A
list of allowed code points in a single string
.
* A
map of allowed characters (true: allowed)
.
*/
allowedCharacters
?:
string
;
allowedCharacters
?:
Record
<
string
,
true
>
;
}
/**
...
...
@@ -3340,7 +3340,7 @@ class UnicodeHighlight extends BaseEditorOption<EditorOption.unicodeHighlighting
invisibleCharacters
:
true
,
ambiguousCharacters
:
true
,
includeComments
:
inUntrustedWorkspace
,
allowedCharacters
:
''
,
allowedCharacters
:
{}
,
};
super
(
...
...
@@ -3374,14 +3374,34 @@ class UnicodeHighlight extends BaseEditorOption<EditorOption.unicodeHighlighting
},
[
unicodeHighlightConfigKeys
.
allowedCharacters
]:
{
restricted
:
true
,
type
:
'
string
'
,
type
:
'
object
'
,
default
:
defaults
.
allowedCharacters
,
description
:
nls
.
localize
(
'
unicodeHighlight.allowedCharacters
'
,
"
Defines allowed characters that are not being highlighted.
"
)
description
:
nls
.
localize
(
'
unicodeHighlight.allowedCharacters
'
,
"
Defines allowed characters that are not being highlighted.
"
),
additionalProperties
:
{
type
:
'
boolean
'
}
},
}
);
}
public
override
applyUpdate
(
value
:
Required
<
Readonly
<
IUnicodeHighlightOptions
>>
,
update
:
Required
<
Readonly
<
IUnicodeHighlightOptions
>>
):
ApplyUpdateResult
<
Required
<
Readonly
<
IUnicodeHighlightOptions
>>>
{
let
didChange
=
false
;
if
(
update
.
allowedCharacters
)
{
// Treat allowedCharacters atomically
if
(
!
objects
.
equals
(
value
.
allowedCharacters
,
update
.
allowedCharacters
))
{
value
=
{
...
value
,
allowedCharacters
:
update
.
allowedCharacters
};
didChange
=
true
;
}
}
const
result
=
super
.
applyUpdate
(
value
,
update
);
if
(
didChange
)
{
return
new
ApplyUpdateResult
(
result
.
newValue
,
true
);
}
return
result
;
}
public
validate
(
_input
:
any
):
InternalUnicodeHighlightOptions
{
if
(
!
_input
||
typeof
_input
!==
'
object
'
)
{
return
this
.
defaultValue
;
...
...
@@ -3392,16 +3412,22 @@ class UnicodeHighlight extends BaseEditorOption<EditorOption.unicodeHighlighting
invisibleCharacters
:
boolean
(
input
.
invisibleCharacters
,
this
.
defaultValue
.
invisibleCharacters
),
ambiguousCharacters
:
boolean
(
input
.
ambiguousCharacters
,
this
.
defaultValue
.
ambiguousCharacters
),
includeComments
:
primitiveSet
<
boolean
|
InUntrustedWorkspace
>
(
input
.
includeComments
,
inUntrustedWorkspace
,
[
true
,
false
,
inUntrustedWorkspace
]),
allowedCharacters
:
string
(
input
.
allowedCharacters
,
''
),
allowedCharacters
:
this
.
validateAllowedCharacters
(
_input
.
allowedCharacters
,
this
.
defaultValue
.
allowedCharacters
),
};
}
}
function
string
(
value
:
unknown
,
defaultValue
:
string
):
string
{
if
(
typeof
value
!==
'
string
'
)
{
return
defaultValue
;
private
validateAllowedCharacters
(
map
:
unknown
,
defaultValue
:
Record
<
string
,
true
>
):
Record
<
string
,
true
>
{
if
((
typeof
map
!==
'
object
'
)
||
!
map
)
{
return
defaultValue
;
}
const
result
:
Record
<
string
,
true
>
=
{};
for
(
const
[
key
,
value
]
of
Object
.
entries
(
map
))
{
if
(
value
===
true
)
{
result
[
key
]
=
true
;
}
}
return
result
;
}
return
value
;
}
//#endregion
...
...
src/vs/editor/contrib/unicodeHighlighter/unicodeHighlighter.ts
浏览文件 @
469043a5
...
...
@@ -160,7 +160,7 @@ export class UnicodeHighlighter extends Disposable implements IEditorContributio
ambiguousCharacters
:
options
.
ambiguousCharacters
,
invisibleCharacters
:
options
.
invisibleCharacters
,
includeComments
:
options
.
includeComments
,
allowedCodePoints
:
Array
.
from
(
options
.
allowedCharacters
).
map
(
c
=>
c
.
codePointAt
(
0
)
!
),
allowedCodePoints
:
Object
.
keys
(
options
.
allowedCharacters
).
map
(
c
=>
c
.
codePointAt
(
0
)
!
),
};
if
(
this
.
_editorWorkerService
.
canComputeUnicodeHighlights
(
this
.
_editor
.
getModel
().
uri
))
{
...
...
@@ -191,7 +191,7 @@ function resolveOptions(trusted: boolean, options: InternalUnicodeHighlightOptio
ambiguousCharacters
:
options
.
ambiguousCharacters
,
invisibleCharacters
:
options
.
invisibleCharacters
,
includeComments
:
options
.
includeComments
===
inUntrustedWorkspace
?
!
trusted
:
options
.
includeComments
,
allowedCharacters
:
options
.
allowedCharacters
??
[]
,
allowedCharacters
:
options
.
allowedCharacters
??
{}
,
};
}
...
...
@@ -640,18 +640,7 @@ export class ShowExcludeOptions extends EditorAction {
const
options
:
ExtendedOptions
[]
=
[
{
label
:
getExcludeCharFromBeingHighlightedLabel
(
codePoint
),
run
:
async
()
=>
{
const
existingValue
=
configurationService
.
getValue
(
unicodeHighlightConfigKeys
.
allowedCharacters
);
let
value
:
string
;
if
(
typeof
existingValue
===
'
string
'
)
{
value
=
existingValue
;
}
else
{
value
=
''
;
}
value
+=
char
;
await
configurationService
.
updateValue
(
unicodeHighlightConfigKeys
.
allowedCharacters
,
value
,
ConfigurationTarget
.
USER
);
}
run
:
()
=>
excludeCharFromBeingHighlighted
(
configurationService
,
[
codePoint
])
},
];
...
...
@@ -681,6 +670,23 @@ export class ShowExcludeOptions extends EditorAction {
}
}
async
function
excludeCharFromBeingHighlighted
(
configurationService
:
IConfigurationService
,
charCodes
:
number
[])
{
const
existingValue
=
configurationService
.
getValue
(
unicodeHighlightConfigKeys
.
allowedCharacters
);
let
value
:
Record
<
string
,
boolean
>
;
if
((
typeof
existingValue
===
'
object
'
)
&&
existingValue
)
{
value
=
existingValue
as
any
;
}
else
{
value
=
{};
}
for
(
const
charCode
of
charCodes
)
{
value
[
String
.
fromCodePoint
(
charCode
)]
=
true
;
}
await
configurationService
.
updateValue
(
unicodeHighlightConfigKeys
.
allowedCharacters
,
value
,
ConfigurationTarget
.
USER
);
}
function
expectNever
(
value
:
never
)
{
throw
new
Error
(
`Unexpected value:
${
value
}
`
);
}
...
...
src/vs/monaco.d.ts
浏览文件 @
469043a5
...
...
@@ -3884,9 +3884,9 @@ declare namespace monaco.editor {
ambiguousCharacters
?:
boolean
;
includeComments
?:
boolean
|
InUntrustedWorkspace
;
/**
* A
list of allowed code points in a single string
.
* A
map of allowed characters (true: allowed)
.
*/
allowedCharacters
?:
string
;
allowedCharacters
?:
Record
<
string
,
true
>
;
}
export
interface
IInlineSuggestOptions
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录