Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
0cbb21ae
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,发现更多精彩内容 >>
提交
0cbb21ae
编写于
11月 19, 2018
作者:
M
Matt Bierner
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Strict null check smartSelect
上级
37f16050
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
19 addition
and
13 deletion
+19
-13
src/tsconfig.strictNullChecks.json
src/tsconfig.strictNullChecks.json
+1
-0
src/vs/editor/contrib/smartSelect/smartSelect.ts
src/vs/editor/contrib/smartSelect/smartSelect.ts
+18
-13
未找到文件。
src/tsconfig.strictNullChecks.json
浏览文件 @
0cbb21ae
...
...
@@ -352,6 +352,7 @@
"./vs/editor/contrib/referenceSearch/referencesModel.ts"
,
"./vs/editor/contrib/rename/rename.ts"
,
"./vs/editor/contrib/rename/renameInputField.ts"
,
"./vs/editor/contrib/smartSelect/smartSelect.ts"
,
"./vs/editor/contrib/smartSelect/tokenSelectionSupport.ts"
,
"./vs/editor/contrib/smartSelect/tokenTree.ts"
,
"./vs/editor/contrib/snippet/snippetParser.ts"
,
...
...
src/vs/editor/contrib/smartSelect/smartSelect.ts
浏览文件 @
0cbb21ae
...
...
@@ -22,14 +22,12 @@ import { MenuId } from 'vs/platform/actions/common/actions';
class
State
{
public
editor
:
ICodeEditor
;
public
next
:
State
;
public
previous
:
State
;
public
selection
:
Range
;
public
next
?
:
State
;
public
previous
?
:
State
;
public
selection
:
Range
|
null
;
constructor
(
editor
:
ICodeEditor
)
{
this
.
editor
=
editor
;
this
.
next
=
null
;
this
.
previous
=
null
;
this
.
selection
=
editor
.
getSelection
();
}
}
...
...
@@ -45,7 +43,7 @@ class SmartSelectController implements IEditorContribution {
}
private
_tokenSelectionSupport
:
TokenSelectionSupport
;
private
_state
:
State
;
private
_state
?
:
State
;
private
_ignoreSelection
:
boolean
;
constructor
(
...
...
@@ -53,7 +51,6 @@ class SmartSelectController implements IEditorContribution {
@
IInstantiationService
instantiationService
:
IInstantiationService
)
{
this
.
_tokenSelectionSupport
=
instantiationService
.
createInstance
(
TokenSelectionSupport
);
this
.
_state
=
null
;
this
.
_ignoreSelection
=
false
;
}
...
...
@@ -65,6 +62,9 @@ class SmartSelectController implements IEditorContribution {
}
public
run
(
forward
:
boolean
):
Promise
<
void
>
{
if
(
!
this
.
editor
.
hasModel
())
{
return
Promise
.
resolve
(
void
0
);
}
const
selection
=
this
.
editor
.
getSelection
();
const
model
=
this
.
editor
.
getModel
();
...
...
@@ -72,11 +72,11 @@ class SmartSelectController implements IEditorContribution {
// forget about current state
if
(
this
.
_state
)
{
if
(
this
.
_state
.
editor
!==
this
.
editor
)
{
this
.
_state
=
null
;
this
.
_state
=
undefined
;
}
}
let
promise
:
Promise
<
void
>
=
Promise
.
resolve
(
null
);
let
promise
:
Promise
<
void
>
=
Promise
.
resolve
(
void
0
);
if
(
!
this
.
_state
)
{
promise
=
Promise
.
resolve
(
this
.
_tokenSelectionSupport
.
getRangesToPositionSync
(
model
.
uri
,
selection
.
getStartPosition
())).
then
((
elements
:
ILogicalSelectionEntry
[])
=>
{
...
...
@@ -84,8 +84,11 @@ class SmartSelectController implements IEditorContribution {
return
;
}
let
lastState
:
State
;
let
lastState
:
State
|
undefined
;
elements
.
filter
((
element
)
=>
{
if
(
!
this
.
editor
.
hasModel
())
{
return
false
;
}
// filter ranges inside the selection
const
selection
=
this
.
editor
.
getSelection
();
const
range
=
new
Range
(
element
.
range
.
startLineNumber
,
element
.
range
.
startColumn
,
element
.
range
.
endLineNumber
,
element
.
range
.
endColumn
);
...
...
@@ -116,7 +119,7 @@ class SmartSelectController implements IEditorContribution {
if
(
this
.
_ignoreSelection
)
{
return
;
}
this
.
_state
=
null
;
this
.
_state
=
undefined
;
unhook
.
dispose
();
});
});
...
...
@@ -135,7 +138,9 @@ class SmartSelectController implements IEditorContribution {
this
.
_ignoreSelection
=
true
;
try
{
this
.
editor
.
setSelection
(
this
.
_state
.
selection
);
if
(
this
.
_state
.
selection
)
{
this
.
editor
.
setSelection
(
this
.
_state
.
selection
);
}
}
finally
{
this
.
_ignoreSelection
=
false
;
}
...
...
@@ -154,7 +159,7 @@ abstract class AbstractSmartSelect extends EditorAction {
this
.
_forward
=
forward
;
}
public
run
(
accessor
:
ServicesAccessor
,
editor
:
ICodeEditor
):
Promise
<
void
>
{
public
run
(
accessor
:
ServicesAccessor
,
editor
:
ICodeEditor
):
Promise
<
void
>
|
undefined
{
let
controller
=
SmartSelectController
.
get
(
editor
);
if
(
controller
)
{
return
controller
.
run
(
this
.
_forward
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录