Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
98b5ee97
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,发现更多精彩内容 >>
提交
98b5ee97
编写于
7月 02, 2019
作者:
M
Matt Bierner
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Replacing IDisposible[] with DisposableStore
#74250
上级
6e4e5397
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
38 addition
and
40 deletion
+38
-40
src/vs/code/electron-browser/processExplorer/processExplorerMain.ts
...e/electron-browser/processExplorer/processExplorerMain.ts
+5
-5
src/vs/code/electron-browser/sharedProcess/contrib/nodeCachedDataCleaner.ts
...on-browser/sharedProcess/contrib/nodeCachedDataCleaner.ts
+4
-4
src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts
.../code/electron-browser/sharedProcess/sharedProcessMain.ts
+9
-9
src/vs/code/electron-main/sharedProcess.ts
src/vs/code/electron-main/sharedProcess.ts
+4
-4
src/vs/editor/browser/services/codeEditorServiceImpl.ts
src/vs/editor/browser/services/codeEditorServiceImpl.ts
+5
-6
src/vs/editor/common/services/modelServiceImpl.ts
src/vs/editor/common/services/modelServiceImpl.ts
+5
-6
src/vs/editor/contrib/contextmenu/contextmenu.ts
src/vs/editor/contrib/contextmenu/contextmenu.ts
+6
-6
未找到文件。
src/vs/code/electron-browser/processExplorer/processExplorerMain.ts
浏览文件 @
98b5ee97
...
...
@@ -16,7 +16,7 @@ import { IContextMenuItem } from 'vs/base/parts/contextmenu/common/contextmenu';
import
{
popup
}
from
'
vs/base/parts/contextmenu/electron-browser/contextmenu
'
;
import
{
ProcessItem
}
from
'
vs/base/common/processes
'
;
import
{
addDisposableListener
}
from
'
vs/base/browser/dom
'
;
import
{
IDisposabl
e
}
from
'
vs/base/common/lifecycle
'
;
import
{
DisposableStor
e
}
from
'
vs/base/common/lifecycle
'
;
import
{
isRemoteDiagnosticError
,
IRemoteDiagnosticError
}
from
'
vs/platform/diagnostics/common/diagnosticsService
'
;
...
...
@@ -24,7 +24,7 @@ let mapPidToWindowTitle = new Map<number, string>();
const
DEBUG_FLAGS_PATTERN
=
/
\s
--
(
inspect|debug
)(
-brk|port
)?
=
(\d
+
)?
/
;
const
DEBUG_PORT_PATTERN
=
/
\s
--
(
inspect|debug
)
-port=
(\d
+
)
/
;
const
listeners
:
IDisposable
[]
=
[]
;
const
listeners
=
new
DisposableStore
()
;
const
collapsedStateCache
:
Map
<
string
,
boolean
>
=
new
Map
<
string
,
boolean
>
();
let
lastRequestTime
:
number
;
...
...
@@ -171,7 +171,7 @@ function renderProcessGroupHeader(sectionName: string, body: HTMLElement, contai
updateSectionCollapsedState
(
!
collapsedStateCache
.
get
(
sectionName
),
body
,
twistie
,
sectionName
);
data
.
prepend
(
twistie
);
listeners
.
push
(
addDisposableListener
(
data
,
'
click
'
,
(
e
)
=>
{
listeners
.
add
(
addDisposableListener
(
data
,
'
click
'
,
(
e
)
=>
{
const
isHidden
=
body
.
classList
.
contains
(
'
hidden
'
);
updateSectionCollapsedState
(
isHidden
,
body
,
twistie
,
sectionName
);
}));
...
...
@@ -222,7 +222,7 @@ function renderTableSection(sectionName: string, processList: FormattedProcessIt
row
.
append
(
cpu
,
memory
,
pid
,
name
);
listeners
.
push
(
addDisposableListener
(
row
,
'
contextmenu
'
,
(
e
)
=>
{
listeners
.
add
(
addDisposableListener
(
row
,
'
contextmenu
'
,
(
e
)
=>
{
showContextMenu
(
e
,
p
,
sectionIsLocal
);
}));
...
...
@@ -239,7 +239,7 @@ function updateProcessInfo(processLists: [{ name: string, rootProcess: ProcessIt
}
container
.
innerHTML
=
''
;
listeners
.
forEach
(
l
=>
l
.
dispose
()
);
listeners
.
clear
(
);
const
tableHead
=
document
.
createElement
(
'
thead
'
);
tableHead
.
innerHTML
=
`<tr>
...
...
src/vs/code/electron-browser/sharedProcess/contrib/nodeCachedDataCleaner.ts
浏览文件 @
98b5ee97
...
...
@@ -5,7 +5,7 @@
import
{
basename
,
dirname
,
join
}
from
'
vs/base/common/path
'
;
import
{
onUnexpectedError
}
from
'
vs/base/common/errors
'
;
import
{
dispose
,
IDisposable
,
toDisposabl
e
}
from
'
vs/base/common/lifecycle
'
;
import
{
toDisposable
,
DisposableStor
e
}
from
'
vs/base/common/lifecycle
'
;
import
{
readdir
,
rimraf
,
stat
}
from
'
vs/base/node/pfs
'
;
import
{
IEnvironmentService
}
from
'
vs/platform/environment/common/environment
'
;
import
product
from
'
vs/platform/product/node/product
'
;
...
...
@@ -16,7 +16,7 @@ export class NodeCachedDataCleaner {
?
1000
*
60
*
60
*
24
*
7
// roughly 1 week
:
1000
*
60
*
60
*
24
*
30
*
3
;
// roughly 3 months
private
_disposables
:
IDisposable
[]
=
[]
;
private
readonly
_disposables
=
new
DisposableStore
()
;
constructor
(
@
IEnvironmentService
private
readonly
_environmentService
:
IEnvironmentService
...
...
@@ -25,7 +25,7 @@ export class NodeCachedDataCleaner {
}
dispose
():
void
{
this
.
_disposables
=
dispose
(
this
.
_disposables
);
this
.
_disposables
.
dispose
(
);
}
private
_manageCachedDataSoon
():
void
{
...
...
@@ -76,7 +76,7 @@ export class NodeCachedDataCleaner {
},
30
*
1000
);
this
.
_disposables
.
push
(
toDisposable
(()
=>
{
this
.
_disposables
.
add
(
toDisposable
(()
=>
{
if
(
handle
)
{
clearTimeout
(
handle
);
handle
=
undefined
;
...
...
src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts
浏览文件 @
98b5ee97
...
...
@@ -37,7 +37,7 @@ import { ILocalizationsService } from 'vs/platform/localizations/common/localiza
import
{
LocalizationsChannel
}
from
'
vs/platform/localizations/node/localizationsIpc
'
;
import
{
DialogChannelClient
}
from
'
vs/platform/dialogs/node/dialogIpc
'
;
import
{
IDialogService
}
from
'
vs/platform/dialogs/common/dialogs
'
;
import
{
IDisposable
,
dispose
,
combinedDisposabl
e
}
from
'
vs/base/common/lifecycle
'
;
import
{
combinedDisposable
,
DisposableStor
e
}
from
'
vs/base/common/lifecycle
'
;
import
{
DownloadService
}
from
'
vs/platform/download/node/downloadService
'
;
import
{
IDownloadService
}
from
'
vs/platform/download/common/download
'
;
import
{
IChannel
,
IServerChannel
,
StaticRouter
}
from
'
vs/base/parts/ipc/common/ipc
'
;
...
...
@@ -85,24 +85,24 @@ class MainProcessService implements IMainProcessService {
async
function
main
(
server
:
Server
,
initData
:
ISharedProcessInitData
,
configuration
:
ISharedProcessConfiguration
):
Promise
<
void
>
{
const
services
=
new
ServiceCollection
();
const
disposables
:
IDisposable
[]
=
[]
;
const
disposables
=
new
DisposableStore
()
;
const
onExit
=
()
=>
dispos
e
(
disposables
);
const
onExit
=
()
=>
dispos
ables
.
dispose
(
);
process
.
once
(
'
exit
'
,
onExit
);
ipcRenderer
.
once
(
'
handshake:goodbye
'
,
onExit
);
disposables
.
push
(
server
);
disposables
.
add
(
server
);
const
environmentService
=
new
EnvironmentService
(
initData
.
args
,
process
.
execPath
);
const
mainRouter
=
new
StaticRouter
(
ctx
=>
ctx
===
'
main
'
);
const
logLevelClient
=
new
LogLevelSetterChannelClient
(
server
.
getChannel
(
'
loglevel
'
,
mainRouter
));
const
logService
=
new
FollowerLogService
(
logLevelClient
,
new
SpdLogService
(
'
sharedprocess
'
,
environmentService
.
logsPath
,
initData
.
logLevel
));
disposables
.
push
(
logService
);
disposables
.
add
(
logService
);
logService
.
info
(
'
main
'
,
JSON
.
stringify
(
configuration
));
const
configurationService
=
new
ConfigurationService
(
environmentService
.
settingsResource
);
disposables
.
push
(
configurationService
);
disposables
.
add
(
configurationService
);
await
configurationService
.
initialize
();
services
.
set
(
IEnvironmentService
,
environmentService
);
...
...
@@ -137,7 +137,7 @@ async function main(server: Server, initData: ISharedProcessInitData, configurat
if
(
!
extensionDevelopmentLocationURI
&&
!
environmentService
.
args
[
'
disable-telemetry
'
]
&&
product
.
enableTelemetry
)
{
if
(
product
.
aiConfig
&&
product
.
aiConfig
.
asimovKey
&&
isBuilt
)
{
appInsightsAppender
=
new
AppInsightsAppender
(
eventPrefix
,
null
,
product
.
aiConfig
.
asimovKey
,
telemetryLogService
);
disposables
.
push
(
appInsightsAppender
);
// Ensure the AI appender is disposed so that it flushes remaining data
disposables
.
add
(
appInsightsAppender
);
// Ensure the AI appender is disposed so that it flushes remaining data
}
const
config
:
ITelemetryServiceConfig
=
{
appender
:
combinedAppender
(
appInsightsAppender
,
new
LogAppender
(
logService
)),
...
...
@@ -179,13 +179,13 @@ async function main(server: Server, initData: ISharedProcessInitData, configurat
// update localizations cache
(
localizationsService
as
LocalizationsService
).
update
();
// cache clean ups
disposables
.
push
(
combinedDisposable
(
disposables
.
add
(
combinedDisposable
(
instantiationService2
.
createInstance
(
NodeCachedDataCleaner
),
instantiationService2
.
createInstance
(
LanguagePackCachedDataCleaner
),
instantiationService2
.
createInstance
(
StorageDataCleaner
),
instantiationService2
.
createInstance
(
LogsDataCleaner
)
));
disposables
.
push
(
extensionManagementService
as
ExtensionManagementService
);
disposables
.
add
(
extensionManagementService
as
ExtensionManagementService
);
});
});
}
...
...
src/vs/code/electron-main/sharedProcess.ts
浏览文件 @
98b5ee97
...
...
@@ -12,7 +12,7 @@ import { Barrier } from 'vs/base/common/async';
import
{
ILogService
}
from
'
vs/platform/log/common/log
'
;
import
{
ILifecycleService
}
from
'
vs/platform/lifecycle/electron-main/lifecycleMain
'
;
import
{
IThemeMainService
}
from
'
vs/platform/theme/electron-main/themeMainService
'
;
import
{
dispose
,
toDisposable
,
IDisposabl
e
}
from
'
vs/base/common/lifecycle
'
;
import
{
toDisposable
,
DisposableStor
e
}
from
'
vs/base/common/lifecycle
'
;
export
class
SharedProcess
implements
ISharedProcess
{
...
...
@@ -66,10 +66,10 @@ export class SharedProcess implements ISharedProcess {
this
.
window
.
on
(
'
close
'
,
onClose
);
const
disposables
:
IDisposable
[]
=
[]
;
const
disposables
=
new
DisposableStore
()
;
this
.
lifecycleService
.
onWillShutdown
(()
=>
{
dispos
e
(
disposables
);
dispos
ables
.
dispose
(
);
// Shut the shared process down when we are quitting
//
...
...
@@ -103,7 +103,7 @@ export class SharedProcess implements ISharedProcess {
logLevel
:
this
.
logService
.
getLevel
()
});
disposables
.
push
(
toDisposable
(()
=>
sender
.
send
(
'
handshake:goodbye
'
)));
disposables
.
add
(
toDisposable
(()
=>
sender
.
send
(
'
handshake:goodbye
'
)));
ipcMain
.
once
(
'
handshake:im ready
'
,
()
=>
c
(
undefined
));
});
});
...
...
src/vs/editor/browser/services/codeEditorServiceImpl.ts
浏览文件 @
98b5ee97
...
...
@@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/
import
*
as
dom
from
'
vs/base/browser/dom
'
;
import
{
IDisposable
,
dispose
as
disposeAll
}
from
'
vs/base/common/lifecycle
'
;
import
{
IDisposable
,
DisposableStore
}
from
'
vs/base/common/lifecycle
'
;
import
*
as
strings
from
'
vs/base/common/strings
'
;
import
{
URI
}
from
'
vs/base/common/uri
'
;
import
{
ICodeEditor
}
from
'
vs/editor/browser/editorBrowser
'
;
...
...
@@ -123,7 +123,7 @@ interface ProviderArguments {
class
DecorationTypeOptionsProvider
implements
IModelDecorationOptionsProvider
{
private
_disposables
:
IDisposable
[]
;
private
readonly
_disposables
=
new
DisposableStore
()
;
public
refCount
:
number
;
public
className
:
string
|
undefined
;
...
...
@@ -138,11 +138,10 @@ class DecorationTypeOptionsProvider implements IModelDecorationOptionsProvider {
constructor
(
themeService
:
IThemeService
,
providerArgs
:
ProviderArguments
)
{
this
.
refCount
=
0
;
this
.
_disposables
=
[];
const
createCSSRules
=
(
type
:
ModelDecorationCSSRuleType
)
=>
{
const
rules
=
new
DecorationCSSRules
(
type
,
providerArgs
,
themeService
);
this
.
_disposables
.
push
(
rules
);
this
.
_disposables
.
add
(
rules
);
if
(
rules
.
hasContent
)
{
return
rules
.
className
;
}
...
...
@@ -150,7 +149,7 @@ class DecorationTypeOptionsProvider implements IModelDecorationOptionsProvider {
};
const
createInlineCSSRules
=
(
type
:
ModelDecorationCSSRuleType
)
=>
{
const
rules
=
new
DecorationCSSRules
(
type
,
providerArgs
,
themeService
);
this
.
_disposables
.
push
(
rules
);
this
.
_disposables
.
add
(
rules
);
if
(
rules
.
hasContent
)
{
return
{
className
:
rules
.
className
,
hasLetterSpacing
:
rules
.
hasLetterSpacing
};
}
...
...
@@ -202,7 +201,7 @@ class DecorationTypeOptionsProvider implements IModelDecorationOptionsProvider {
}
public
dispose
():
void
{
this
.
_disposables
=
disposeAll
(
this
.
_disposables
);
this
.
_disposables
.
dispose
(
);
}
}
...
...
src/vs/editor/common/services/modelServiceImpl.ts
浏览文件 @
98b5ee97
...
...
@@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/
import
{
Emitter
,
Event
}
from
'
vs/base/common/event
'
;
import
{
Disposable
,
IDisposable
,
dispos
e
}
from
'
vs/base/common/lifecycle
'
;
import
{
Disposable
,
IDisposable
,
DisposableStor
e
}
from
'
vs/base/common/lifecycle
'
;
import
*
as
platform
from
'
vs/base/common/platform
'
;
import
{
URI
}
from
'
vs/base/common/uri
'
;
import
{
EDITOR_MODEL_DEFAULTS
}
from
'
vs/editor/common/config/editorOptions
'
;
...
...
@@ -30,7 +30,7 @@ class ModelData implements IDisposable {
private
_languageSelection
:
ILanguageSelection
|
null
;
private
_languageSelectionListener
:
IDisposable
|
null
;
private
_modelEventListeners
:
IDisposable
[]
;
private
readonly
_modelEventListeners
=
new
DisposableStore
()
;
constructor
(
model
:
ITextModel
,
...
...
@@ -42,9 +42,8 @@ class ModelData implements IDisposable {
this
.
_languageSelection
=
null
;
this
.
_languageSelectionListener
=
null
;
this
.
_modelEventListeners
=
[];
this
.
_modelEventListeners
.
push
(
model
.
onWillDispose
(()
=>
onWillDispose
(
model
)));
this
.
_modelEventListeners
.
push
(
model
.
onDidChangeLanguage
((
e
)
=>
onDidChangeLanguage
(
model
,
e
)));
this
.
_modelEventListeners
.
add
(
model
.
onWillDispose
(()
=>
onWillDispose
(
model
)));
this
.
_modelEventListeners
.
add
(
model
.
onDidChangeLanguage
((
e
)
=>
onDidChangeLanguage
(
model
,
e
)));
}
private
_disposeLanguageSelection
():
void
{
...
...
@@ -59,7 +58,7 @@ class ModelData implements IDisposable {
}
public
dispose
():
void
{
this
.
_modelEventListeners
=
dispose
(
this
.
_modelEventListeners
);
this
.
_modelEventListeners
.
dispose
(
);
this
.
_disposeLanguageSelection
();
}
...
...
src/vs/editor/contrib/contextmenu/contextmenu.ts
浏览文件 @
98b5ee97
...
...
@@ -10,7 +10,7 @@ import { ActionViewItem, Separator } from 'vs/base/browser/ui/actionbar/actionba
import
{
IAnchor
}
from
'
vs/base/browser/ui/contextview/contextview
'
;
import
{
IAction
}
from
'
vs/base/common/actions
'
;
import
{
KeyCode
,
KeyMod
,
ResolvedKeybinding
}
from
'
vs/base/common/keyCodes
'
;
import
{
IDisposable
,
dispos
e
}
from
'
vs/base/common/lifecycle
'
;
import
{
DisposableStor
e
}
from
'
vs/base/common/lifecycle
'
;
import
{
ICodeEditor
,
IEditorMouseEvent
,
MouseTargetType
}
from
'
vs/editor/browser/editorBrowser
'
;
import
{
EditorAction
,
ServicesAccessor
,
registerEditorAction
,
registerEditorContribution
}
from
'
vs/editor/browser/editorExtensions
'
;
import
{
IEditorContribution
,
ScrollType
}
from
'
vs/editor/common/editorCommon
'
;
...
...
@@ -31,7 +31,7 @@ export class ContextMenuController implements IEditorContribution {
return
editor
.
getContribution
<
ContextMenuController
>
(
ContextMenuController
.
ID
);
}
private
_toDispose
:
IDisposable
[]
=
[]
;
private
readonly
_toDispose
=
new
DisposableStore
()
;
private
_contextMenuIsBeingShownCount
:
number
=
0
;
private
readonly
_editor
:
ICodeEditor
;
...
...
@@ -45,13 +45,13 @@ export class ContextMenuController implements IEditorContribution {
)
{
this
.
_editor
=
editor
;
this
.
_toDispose
.
push
(
this
.
_editor
.
onContextMenu
((
e
:
IEditorMouseEvent
)
=>
this
.
_onContextMenu
(
e
)));
this
.
_toDispose
.
push
(
this
.
_editor
.
onMouseWheel
((
e
:
IMouseWheelEvent
)
=>
{
this
.
_toDispose
.
add
(
this
.
_editor
.
onContextMenu
((
e
:
IEditorMouseEvent
)
=>
this
.
_onContextMenu
(
e
)));
this
.
_toDispose
.
add
(
this
.
_editor
.
onMouseWheel
((
e
:
IMouseWheelEvent
)
=>
{
if
(
this
.
_contextMenuIsBeingShownCount
>
0
)
{
this
.
_contextViewService
.
hideContextView
();
}
}));
this
.
_toDispose
.
push
(
this
.
_editor
.
onKeyDown
((
e
:
IKeyboardEvent
)
=>
{
this
.
_toDispose
.
add
(
this
.
_editor
.
onKeyDown
((
e
:
IKeyboardEvent
)
=>
{
if
(
e
.
keyCode
===
KeyCode
.
ContextMenu
)
{
// Chrome is funny like that
e
.
preventDefault
();
...
...
@@ -217,7 +217,7 @@ export class ContextMenuController implements IEditorContribution {
this
.
_contextViewService
.
hideContextView
();
}
this
.
_toDispose
=
dispose
(
this
.
_toDispose
);
this
.
_toDispose
.
dispose
(
);
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录