Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
徽霖
Vscode
提交
d9d762d1
V
Vscode
项目概览
徽霖
/
Vscode
通知
9
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,发现更多精彩内容 >>
提交
d9d762d1
编写于
3月 28, 2018
作者:
M
Martin Aeschlimann
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[css] .asar file breaks CSS path completion. Fixes #46638
上级
9e0374f2
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
34 addition
and
4 deletion
+34
-4
extensions/css-language-features/server/src/pathCompletion.ts
...nsions/css-language-features/server/src/pathCompletion.ts
+7
-3
extensions/css-language-features/server/src/test/completion.test.ts
.../css-language-features/server/src/test/completion.test.ts
+14
-0
extensions/css-language-features/server/test/pathCompletionFixtures/src/data/foo.asar
...ures/server/test/pathCompletionFixtures/src/data/foo.asar
+4
-0
extensions/html-language-features/server/src/modes/pathCompletion.ts
...html-language-features/server/src/modes/pathCompletion.ts
+9
-1
未找到文件。
extensions/css-language-features/server/src/pathCompletion.ts
浏览文件 @
d9d762d1
...
...
@@ -10,7 +10,7 @@ import URI from 'vscode-uri';
import
{
TextDocument
,
CompletionList
,
CompletionItemKind
,
CompletionItem
,
TextEdit
,
Range
,
Position
}
from
'
vscode-languageserver-types
'
;
import
{
WorkspaceFolder
}
from
'
vscode-languageserver
'
;
import
{
ICompletionParticipant
}
from
'
vscode-css-languageservice
'
;
import
{
ICompletionParticipant
,
URILiteralCompletionContext
}
from
'
vscode-css-languageservice
'
;
import
{
startsWith
}
from
'
./utils/strings
'
;
...
...
@@ -20,7 +20,7 @@ export function getPathCompletionParticipant(
result
:
CompletionList
):
ICompletionParticipant
{
return
{
onURILiteralValue
:
(
context
:
{
uriValue
:
string
,
position
:
Position
,
range
:
Range
;
}
)
=>
{
onURILiteralValue
:
(
context
:
URILiteralCompletionContext
)
=>
{
if
(
!
workspaceFolders
||
workspaceFolders
.
length
===
0
)
{
return
;
}
...
...
@@ -91,7 +91,11 @@ export function providePathSuggestions(value: string, range: Range, activeDocFsP
}
const
isDir
=
(
p
:
string
)
=>
{
try
{
return
fs
.
statSync
(
p
).
isDirectory
();
}
catch
(
e
)
{
return
false
;
}
};
function
resolveWorkspaceRoot
(
activeDoc
:
TextDocument
,
workspaceFolders
:
WorkspaceFolder
[]):
string
|
undefined
{
...
...
extensions/css-language-features/server/src/test/completion.test.ts
浏览文件 @
d9d762d1
...
...
@@ -77,5 +77,19 @@ suite('Completions', () => {
{
label
:
'
src/
'
,
resultText
:
`html { background-image: url('../src/')`
}
]
},
testUri
);
assertCompletions
(
`html { background-image: url('../src/a|')`
,
{
items
:
[
{
label
:
'
feature.js
'
,
resultText
:
`html { background-image: url('../src/feature.js')`
},
{
label
:
'
data/
'
,
resultText
:
`html { background-image: url('../src/data/')`
},
{
label
:
'
test.js
'
,
resultText
:
`html { background-image: url('../src/test.js')`
}
]
},
testUri
);
assertCompletions
(
`html { background-image: url('../src/data/f|.asar')`
,
{
items
:
[
{
label
:
'
foo.asar
'
,
resultText
:
`html { background-image: url('../src/data/foo.asar')`
}
]
},
testUri
);
});
});
\ No newline at end of file
extensions/css-language-features/server/test/pathCompletionFixtures/src/data/foo.asar
0 → 100644
浏览文件 @
d9d762d1
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
\ No newline at end of file
extensions/html-language-features/server/src/modes/pathCompletion.ts
浏览文件 @
d9d762d1
...
...
@@ -82,7 +82,7 @@ function providePaths(valueBeforeCursor: string, activeDocFsPath: string, root?:
try
{
return
fs
.
readdirSync
(
parentDir
).
map
(
f
=>
{
return
fs
.
statSync
(
path
.
resolve
(
parentDir
,
f
)).
isDirectory
(
)
return
isDir
(
path
.
resolve
(
parentDir
,
f
)
)
?
f
+
'
/
'
:
f
;
});
...
...
@@ -91,6 +91,14 @@ function providePaths(valueBeforeCursor: string, activeDocFsPath: string, root?:
}
}
function
isDir
(
p
:
string
)
{
try
{
return
fs
.
statSync
(
p
).
isDirectory
();
}
catch
(
e
)
{
return
false
;
}
}
function
pathToSuggestion
(
p
:
string
,
valueBeforeCursor
:
string
,
fullValue
:
string
,
range
:
Range
):
CompletionItem
{
const
isDir
=
p
[
p
.
length
-
1
]
===
'
/
'
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录