Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
a845443e
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,发现更多精彩内容 >>
提交
a845443e
编写于
12月 12, 2017
作者:
M
Matt Bierner
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Clean up inferred project config logic
上级
1b579ed2
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
29 addition
and
24 deletion
+29
-24
extensions/typescript/src/typescriptServiceClient.ts
extensions/typescript/src/typescriptServiceClient.ts
+4
-11
extensions/typescript/src/utils/tsconfig.ts
extensions/typescript/src/utils/tsconfig.ts
+25
-13
未找到文件。
extensions/typescript/src/typescriptServiceClient.ts
浏览文件 @
a845443e
...
...
@@ -27,6 +27,7 @@ import { TypeScriptServiceConfiguration, TsServerLogLevel } from './utils/config
import
{
TypeScriptVersionProvider
,
TypeScriptVersion
}
from
'
./utils/versionProvider
'
;
import
{
TypeScriptVersionPicker
}
from
'
./utils/versionPicker
'
;
import
*
as
fileSchemes
from
'
./utils/fileSchemes
'
;
import
{
inferredProjectConfig
}
from
'
./utils/tsconfig
'
;
const
localize
=
nls
.
loadMessageBundle
();
...
...
@@ -476,20 +477,12 @@ export default class TypeScriptServiceClient implements ITypeScriptServiceClient
}
private
getCompilerOptionsForInferredProjects
(
configuration
:
TypeScriptServiceConfiguration
):
Proto
.
ExternalProjectCompilerOptions
{
const
compilerOptions
:
Proto
.
ExternalProjectCompilerOptions
=
{
module
:
'
CommonJS
'
as
Proto
.
ModuleKind
,
target
:
'
Es2016
'
as
Proto
.
ScriptTarget
,
return
{
...
inferredProjectConfig
(
configuration
)
,
allowJs
:
true
,
allowSyntheticDefaultImports
:
true
,
allowNonTsExtensions
:
true
,
allowJs
:
true
,
jsx
:
'
Preserve
'
as
Proto
.
JsxEmit
};
if
(
this
.
apiVersion
.
has230Features
())
{
compilerOptions
.
checkJs
=
configuration
.
checkJs
;
compilerOptions
.
experimentalDecorators
=
configuration
.
experimentalDecorators
;
}
return
compilerOptions
;
}
private
serviceExited
(
restart
:
boolean
):
void
{
...
...
extensions/typescript/src/utils/tsconfig.ts
浏览文件 @
a845443e
...
...
@@ -5,27 +5,39 @@
import
*
as
vscode
from
'
vscode
'
;
import
*
as
path
from
'
path
'
;
import
*
as
Proto
from
'
../protocol
'
;
import
{
TypeScriptServiceConfiguration
}
from
'
./configuration
'
;
export
function
isImplicitProjectConfigFile
(
configFileName
:
string
)
{
return
configFileName
.
indexOf
(
'
/dev/null/
'
)
===
0
;
}
function
getEmptyConfig
(
isTypeScriptProject
:
boolean
,
export
function
inferredProjectConfig
(
config
:
TypeScriptServiceConfiguration
)
{
const
compilerOptions
=
[
'
"target": "es2016"
'
,
'
"module": "commonjs"
'
,
'
"jsx": "preserve"
'
,
];
if
(
!
isTypeScriptProject
&&
config
.
checkJs
)
{
compilerOptions
.
push
(
'
"checkJs": true
'
);
):
Proto
.
ExternalProjectCompilerOptions
{
const
base
:
Proto
.
ExternalProjectCompilerOptions
=
{
module
:
'
commonjs
'
as
Proto
.
ModuleKind
,
target
:
'
es2016
'
as
Proto
.
ScriptTarget
,
jsx
:
'
preserve
'
as
Proto
.
JsxEmit
};
if
(
config
.
checkJs
)
{
base
.
checkJs
=
true
;
}
if
(
!
isTypeScriptProject
&&
config
.
experimentalDecorators
)
{
compilerOptions
.
push
(
'
"experimentalDecorators": true
'
);
if
(
config
.
experimentalDecorators
)
{
base
.
experimentalDecorators
=
true
;
}
return
base
;
}
function
getEmptyConfigSnippet
(
config
:
TypeScriptServiceConfiguration
)
{
const
baseConfig
=
inferredProjectConfig
(
config
);
const
compilerOptions
=
Object
.
keys
(
baseConfig
).
map
(
key
=>
`"
${
key
}
":
${
JSON
.
stringify
(
baseConfig
[
key
])}
`
);
return
new
vscode
.
SnippetString
(
`{
"compilerOptions": {
${
compilerOptions
.
join
(
'
,
\n\t\t
'
)}
$0
...
...
@@ -51,7 +63,7 @@ export async function openOrCreateConfigFile(
const
doc
=
await
vscode
.
workspace
.
openTextDocument
(
configFile
.
with
({
scheme
:
'
untitled
'
}));
const
editor
=
await
vscode
.
window
.
showTextDocument
(
doc
,
col
);
if
(
editor
.
document
.
getText
().
length
===
0
)
{
await
editor
.
insertSnippet
(
getEmptyConfig
(
isTypeScriptProject
,
config
));
await
editor
.
insertSnippet
(
getEmptyConfig
Snippet
(
config
));
}
return
editor
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录