Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
15952524
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,发现更多精彩内容 >>
提交
15952524
编写于
10月 05, 2018
作者:
I
isidor
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
repl: readonyl input while no session active
上级
74fae4d7
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
40 addition
and
2 deletion
+40
-2
src/vs/workbench/parts/debug/electron-browser/repl.ts
src/vs/workbench/parts/debug/electron-browser/repl.ts
+40
-2
未找到文件。
src/vs/workbench/parts/debug/electron-browser/repl.ts
浏览文件 @
15952524
...
...
@@ -48,6 +48,9 @@ import { createAndBindHistoryNavigationWidgetScopedContextKeyService } from 'vs/
import
{
KeybindingWeight
}
from
'
vs/platform/keybinding/common/keybindingsRegistry
'
;
import
{
getSimpleCodeEditorWidgetOptions
}
from
'
vs/workbench/parts/codeEditor/electron-browser/simpleEditorOptions
'
;
import
{
getSimpleEditorOptions
}
from
'
vs/workbench/parts/codeEditor/browser/simpleEditorOptions
'
;
import
{
IDecorationOptions
}
from
'
vs/editor/common/editorCommon
'
;
import
{
transparent
,
editorForeground
}
from
'
vs/platform/theme/common/colorRegistry
'
;
import
{
ICodeEditorService
}
from
'
vs/editor/browser/services/codeEditorService
'
;
const
$
=
dom
.
$
;
...
...
@@ -58,6 +61,7 @@ const replTreeOptions: ITreeOptions = {
const
HISTORY_STORAGE_KEY
=
'
debug.repl.history
'
;
const
IPrivateReplService
=
createDecorator
<
IPrivateReplService
>
(
'
privateReplService
'
);
const
DECORATION_KEY
=
'
replinputdecoration
'
;
export
interface
IPrivateReplService
{
_serviceBrand
:
any
;
...
...
@@ -96,13 +100,15 @@ export class Repl extends Panel implements IPrivateReplService, IHistoryNavigati
@
IPanelService
private
panelService
:
IPanelService
,
@
IThemeService
protected
themeService
:
IThemeService
,
@
IModelService
private
modelService
:
IModelService
,
@
IContextKeyService
private
contextKeyService
:
IContextKeyService
@
IContextKeyService
private
contextKeyService
:
IContextKeyService
,
@
ICodeEditorService
codeEditorService
:
ICodeEditorService
,
)
{
super
(
REPL_ID
,
telemetryService
,
themeService
);
this
.
replInputHeight
=
Repl
.
REPL_INPUT_INITIAL_HEIGHT
;
this
.
history
=
new
HistoryNavigator
(
JSON
.
parse
(
this
.
storageService
.
get
(
HISTORY_STORAGE_KEY
,
StorageScope
.
WORKSPACE
,
'
[]
'
)),
50
);
this
.
registerListeners
();
codeEditorService
.
registerDecorationType
(
DECORATION_KEY
,
{});
}
private
registerListeners
():
void
{
...
...
@@ -120,8 +126,11 @@ export class Repl extends Panel implements IPrivateReplService, IHistoryNavigati
this
.
tree
.
setInput
(
session
);
}
}
this
.
replInput
.
updateOptions
({
readOnly
:
!
session
});
this
.
updateInputDecoration
();
}));
this
.
_register
(
this
.
panelService
.
onDidPanelOpen
(
panel
=>
this
.
refreshReplElements
(
true
)));
this
.
_register
(
this
.
themeService
.
onThemeChange
(()
=>
this
.
updateInputDecoration
()));
}
private
refreshReplElements
(
noDelay
:
boolean
):
void
{
...
...
@@ -168,6 +177,7 @@ export class Repl extends Panel implements IPrivateReplService, IHistoryNavigati
}
else
{
this
.
model
=
this
.
modelService
.
createModel
(
''
,
null
,
uri
.
parse
(
`
${
DEBUG_SCHEME
}
:replinput`
),
true
);
this
.
replInput
.
setModel
(
this
.
model
);
this
.
updateInputDecoration
();
const
focusedSession
=
this
.
debugService
.
getViewModel
().
focusedSession
;
if
(
focusedSession
&&
this
.
tree
.
getInput
()
!==
focusedSession
)
{
this
.
tree
.
setInput
(
focusedSession
);
...
...
@@ -187,7 +197,9 @@ export class Repl extends Panel implements IPrivateReplService, IHistoryNavigati
const
scopedInstantiationService
=
this
.
instantiationService
.
createChild
(
new
ServiceCollection
(
[
IContextKeyService
,
scopedContextKeyService
],
[
IPrivateReplService
,
this
]));
this
.
replInput
=
scopedInstantiationService
.
createInstance
(
CodeEditorWidget
,
this
.
replInputContainer
,
getSimpleEditorOptions
(),
getSimpleCodeEditorWidgetOptions
());
const
options
=
getSimpleEditorOptions
();
options
.
readOnly
=
true
;
this
.
replInput
=
scopedInstantiationService
.
createInstance
(
CodeEditorWidget
,
this
.
replInputContainer
,
options
,
getSimpleCodeEditorWidgetOptions
());
modes
.
CompletionProviderRegistry
.
register
({
scheme
:
DEBUG_SCHEME
,
pattern
:
'
**/replinput
'
,
hasAccessToAllModels
:
true
},
{
triggerCharacters
:
[
'
.
'
],
...
...
@@ -325,6 +337,32 @@ export class Repl extends Panel implements IPrivateReplService, IHistoryNavigati
}
}
private
updateInputDecoration
():
void
{
if
(
!
this
.
replInput
)
{
return
;
}
const
decorations
:
IDecorationOptions
[]
=
[];
if
(
!
this
.
debugService
.
getViewModel
().
focusedSession
)
{
decorations
.
push
({
range
:
{
startLineNumber
:
0
,
endLineNumber
:
0
,
startColumn
:
0
,
endColumn
:
1
},
renderOptions
:
{
after
:
{
contentText
:
nls
.
localize
(
'
startDebugFirst
'
,
"
Please start a debug session to evaluate
"
),
color
:
transparent
(
editorForeground
,
0.4
)(
this
.
themeService
.
getTheme
()).
toString
()
}
}
});
}
this
.
replInput
.
setDecorations
(
DECORATION_KEY
,
decorations
);
}
public
dispose
():
void
{
this
.
replInput
.
dispose
();
super
.
dispose
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录