Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
4e5a574a
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,发现更多精彩内容 >>
提交
4e5a574a
编写于
10月 27, 2017
作者:
M
Matt Bierner
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Extract getTsServerArgs
上级
b06450e1
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
67 addition
and
61 deletion
+67
-61
extensions/typescript/src/typescriptServiceClient.ts
extensions/typescript/src/typescriptServiceClient.ts
+67
-61
未找到文件。
extensions/typescript/src/typescriptServiceClient.ts
浏览文件 @
4e5a574a
...
...
@@ -25,7 +25,7 @@ import API from './utils/api';
import
*
as
nls
from
'
vscode-nls
'
;
import
{
TypeScriptServiceConfiguration
,
TsServerLogLevel
}
from
'
./utils/configuration
'
;
import
{
TypeScriptVersionProvider
}
from
'
./utils/versionProvider
'
;
import
{
TypeScriptVersionProvider
,
TypeScriptVersion
}
from
'
./utils/versionProvider
'
;
import
{
TypeScriptVersionPicker
}
from
'
./utils/versionPicker
'
;
const
localize
=
nls
.
loadMessageBundle
();
...
...
@@ -326,66 +326,7 @@ export default class TypeScriptServiceClient implements ITypescriptServiceClient
execArgv
:
[]
// [`--debug-brk=5859`]
};
const
args
:
string
[]
=
[];
if
(
this
.
apiVersion
.
has206Features
())
{
if
(
this
.
apiVersion
.
has250Features
())
{
args
.
push
(
'
--useInferredProjectPerProjectRoot
'
);
}
else
{
args
.
push
(
'
--useSingleInferredProject
'
);
}
if
(
this
.
_configuration
.
disableAutomaticTypeAcquisition
)
{
args
.
push
(
'
--disableAutomaticTypingAcquisition
'
);
}
}
if
(
this
.
apiVersion
.
has208Features
())
{
args
.
push
(
'
--enableTelemetry
'
);
}
if
(
this
.
apiVersion
.
has222Features
())
{
this
.
cancellationPipeName
=
electron
.
getTempFile
(
`tscancellation-
${
electron
.
makeRandomHexString
(
20
)}
`
);
args
.
push
(
'
--cancellationPipeName
'
,
this
.
cancellationPipeName
+
'
*
'
);
}
if
(
this
.
apiVersion
.
has222Features
())
{
if
(
this
.
_configuration
.
tsServerLogLevel
!==
TsServerLogLevel
.
Off
)
{
try
{
const
logDir
=
fs
.
mkdtempSync
(
path
.
join
(
os
.
tmpdir
(),
`vscode-tsserver-log-`
));
this
.
tsServerLogFile
=
path
.
join
(
logDir
,
`tsserver.log`
);
this
.
info
(
`TSServer log file:
${
this
.
tsServerLogFile
}
`
);
}
catch
(
e
)
{
this
.
error
(
'
Could not create TSServer log directory
'
);
}
if
(
this
.
tsServerLogFile
)
{
args
.
push
(
'
--logVerbosity
'
,
TsServerLogLevel
.
toString
(
this
.
_configuration
.
tsServerLogLevel
));
args
.
push
(
'
--logFile
'
,
this
.
tsServerLogFile
);
}
}
}
if
(
this
.
apiVersion
.
has230Features
())
{
if
(
this
.
plugins
.
length
)
{
args
.
push
(
'
--globalPlugins
'
,
this
.
plugins
.
map
(
x
=>
x
.
name
).
join
(
'
,
'
));
if
(
currentVersion
.
path
===
this
.
versionProvider
.
defaultVersion
.
path
)
{
args
.
push
(
'
--pluginProbeLocations
'
,
this
.
plugins
.
map
(
x
=>
x
.
path
).
join
(
'
,
'
));
}
}
}
if
(
this
.
apiVersion
.
has234Features
())
{
if
(
this
.
_configuration
.
npmLocation
)
{
args
.
push
(
'
--npmLocation
'
,
`"
${
this
.
_configuration
.
npmLocation
}
"`
);
}
}
if
(
this
.
apiVersion
.
has260Features
())
{
const
tsLocale
=
getTsLocale
(
this
.
_configuration
);
if
(
tsLocale
)
{
args
.
push
(
'
--locale
'
,
tsLocale
);
}
}
electron
.
fork
(
currentVersion
.
tsServerPath
,
args
,
options
,
this
.
logger
,
(
err
:
any
,
childProcess
:
cp
.
ChildProcess
|
null
)
=>
{
electron
.
fork
(
currentVersion
.
tsServerPath
,
this
.
getTsServerArgs
(
currentVersion
),
options
,
this
.
logger
,
(
err
:
any
,
childProcess
:
cp
.
ChildProcess
|
null
)
=>
{
if
(
err
||
!
childProcess
)
{
this
.
lastError
=
err
;
this
.
error
(
'
Starting TSServer failed with error.
'
,
err
);
...
...
@@ -861,6 +802,71 @@ export default class TypeScriptServiceClient implements ITypescriptServiceClient
// __GDPR__COMMENT__: Other events are defined by TypeScript.
this
.
logTelemetry
(
telemetryData
.
telemetryEventName
,
properties
);
}
private
getTsServerArgs
(
currentVersion
:
TypeScriptVersion
):
string
[]
{
const
args
:
string
[]
=
[];
if
(
this
.
apiVersion
.
has206Features
())
{
if
(
this
.
apiVersion
.
has250Features
())
{
args
.
push
(
'
--useInferredProjectPerProjectRoot
'
);
}
else
{
args
.
push
(
'
--useSingleInferredProject
'
);
}
if
(
this
.
_configuration
.
disableAutomaticTypeAcquisition
)
{
args
.
push
(
'
--disableAutomaticTypingAcquisition
'
);
}
}
if
(
this
.
apiVersion
.
has208Features
())
{
args
.
push
(
'
--enableTelemetry
'
);
}
if
(
this
.
apiVersion
.
has222Features
())
{
this
.
cancellationPipeName
=
electron
.
getTempFile
(
`tscancellation-
${
electron
.
makeRandomHexString
(
20
)}
`
);
args
.
push
(
'
--cancellationPipeName
'
,
this
.
cancellationPipeName
+
'
*
'
);
}
if
(
this
.
apiVersion
.
has222Features
())
{
if
(
this
.
_configuration
.
tsServerLogLevel
!==
TsServerLogLevel
.
Off
)
{
try
{
const
logDir
=
fs
.
mkdtempSync
(
path
.
join
(
os
.
tmpdir
(),
`vscode-tsserver-log-`
));
this
.
tsServerLogFile
=
path
.
join
(
logDir
,
`tsserver.log`
);
this
.
info
(
`TSServer log file:
${
this
.
tsServerLogFile
}
`
);
}
catch
(
e
)
{
this
.
error
(
'
Could not create TSServer log directory
'
);
}
if
(
this
.
tsServerLogFile
)
{
args
.
push
(
'
--logVerbosity
'
,
TsServerLogLevel
.
toString
(
this
.
_configuration
.
tsServerLogLevel
));
args
.
push
(
'
--logFile
'
,
this
.
tsServerLogFile
);
}
}
}
if
(
this
.
apiVersion
.
has230Features
())
{
if
(
this
.
plugins
.
length
)
{
args
.
push
(
'
--globalPlugins
'
,
this
.
plugins
.
map
(
x
=>
x
.
name
).
join
(
'
,
'
));
if
(
currentVersion
.
path
===
this
.
versionProvider
.
defaultVersion
.
path
)
{
args
.
push
(
'
--pluginProbeLocations
'
,
this
.
plugins
.
map
(
x
=>
x
.
path
).
join
(
'
,
'
));
}
}
}
if
(
this
.
apiVersion
.
has234Features
())
{
if
(
this
.
_configuration
.
npmLocation
)
{
args
.
push
(
'
--npmLocation
'
,
`"
${
this
.
_configuration
.
npmLocation
}
"`
);
}
}
if
(
this
.
apiVersion
.
has260Features
())
{
const
tsLocale
=
getTsLocale
(
this
.
_configuration
);
if
(
tsLocale
)
{
args
.
push
(
'
--locale
'
,
tsLocale
);
}
}
return
args
;
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录