Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
1cf7612e
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,发现更多精彩内容 >>
提交
1cf7612e
编写于
9月 21, 2017
作者:
M
Martin Aeschlimann
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[css] move colorpresentations to language server
上级
9b93a688
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
63 addition
and
77 deletion
+63
-77
extensions/css/client/src/cssMain.ts
extensions/css/client/src/cssMain.ts
+18
-38
extensions/css/npm-shrinkwrap.json
extensions/css/npm-shrinkwrap.json
+12
-16
extensions/css/package.json
extensions/css/package.json
+3
-4
extensions/css/server/npm-shrinkwrap.json
extensions/css/server/npm-shrinkwrap.json
+12
-12
extensions/css/server/package.json
extensions/css/server/package.json
+3
-3
extensions/css/server/src/cssServerMain.ts
extensions/css/server/src/cssServerMain.ts
+15
-4
未找到文件。
extensions/css/client/src/cssMain.ts
浏览文件 @
1cf7612e
...
...
@@ -6,14 +6,13 @@
import
*
as
path
from
'
path
'
;
import
{
languages
,
window
,
commands
,
ExtensionContext
,
TextDocument
,
ColorInformation
,
ColorPresentation
,
Color
,
TextEdit
as
CodeTextEdit
}
from
'
vscode
'
;
import
{
languages
,
window
,
commands
,
ExtensionContext
,
TextDocument
,
ColorInformation
,
ColorPresentation
,
Color
}
from
'
vscode
'
;
import
{
LanguageClient
,
LanguageClientOptions
,
ServerOptions
,
TransportKind
,
TextEdit
}
from
'
vscode-languageclient
'
;
import
{
ConfigurationFeature
}
from
'
vscode-languageclient/lib/proposed
'
;
import
{
DocumentColorRequest
}
from
'
vscode-languageserver-protocol/lib/protocol.colorProvider.proposed
'
;
import
{
ConfigurationFeature
}
from
'
vscode-languageclient/lib/
configuration.
proposed
'
;
import
{
DocumentColorRequest
,
DocumentColorParams
,
ColorPresentationRequest
,
ColorPresentationParams
}
from
'
vscode-languageserver-protocol/lib/protocol.colorProvider.proposed
'
;
import
*
as
nls
from
'
vscode-nls
'
;
import
*
as
convert
from
'
color-convert
'
;
let
localize
=
nls
.
loadMessageBundle
();
// this method is called when vs code is activated
...
...
@@ -52,16 +51,13 @@ export function activate(context: ExtensionContext) {
// client can be deactivated on extension deactivation
context
.
subscriptions
.
push
(
disposable
);
var
_toTwoDigitHex
=
function
(
n
:
number
):
string
{
const
r
=
n
.
toString
(
16
);
return
r
.
length
!==
2
?
'
0
'
+
r
:
r
;
};
client
.
onReady
().
then
(
_
=>
{
// register color provider
context
.
subscriptions
.
push
(
languages
.
registerColorProvider
(
documentSelector
,
{
provideDocumentColors
(
document
:
TextDocument
):
Thenable
<
ColorInformation
[]
>
{
let
params
=
client
.
code2ProtocolConverter
.
asDocumentSymbolParams
(
document
);
let
params
:
DocumentColorParams
=
{
textDocument
:
client
.
code2ProtocolConverter
.
asTextDocumentIdentifier
(
document
)
};
return
client
.
sendRequest
(
DocumentColorRequest
.
type
,
params
).
then
(
symbols
=>
{
return
symbols
.
map
(
symbol
=>
{
let
range
=
client
.
protocol2CodeConverter
.
asRange
(
symbol
.
range
);
...
...
@@ -71,34 +67,18 @@ export function activate(context: ExtensionContext) {
});
},
provideColorPresentations
(
document
:
TextDocument
,
colorInfo
:
ColorInformation
):
ColorPresentation
[]
|
Thenable
<
ColorPresentation
[]
>
{
let
result
:
ColorPresentation
[]
=
[];
let
color
=
colorInfo
.
color
;
let
label
;
if
(
color
.
alpha
===
1
)
{
label
=
`rgb(
${
Math
.
round
(
color
.
red
*
255
)}
,
${
Math
.
round
(
color
.
green
*
255
)}
,
${
Math
.
round
(
color
.
blue
*
255
)}
)`
;
}
else
{
label
=
`rgba(
${
Math
.
round
(
color
.
red
*
255
)}
,
${
Math
.
round
(
color
.
green
*
255
)}
,
${
Math
.
round
(
color
.
blue
*
255
)}
,
${
color
.
alpha
}
)`
;
}
result
.
push
({
label
:
label
,
textEdit
:
new
CodeTextEdit
(
colorInfo
.
range
,
label
)
});
if
(
color
.
alpha
===
1
)
{
label
=
`#
${
_toTwoDigitHex
(
Math
.
round
(
color
.
red
*
255
))}${
_toTwoDigitHex
(
Math
.
round
(
color
.
green
*
255
))}${
_toTwoDigitHex
(
Math
.
round
(
color
.
blue
*
255
))}
`
;
}
else
{
label
=
`#
${
_toTwoDigitHex
(
Math
.
round
(
color
.
red
*
255
))}${
_toTwoDigitHex
(
Math
.
round
(
color
.
green
*
255
))}${
_toTwoDigitHex
(
Math
.
round
(
color
.
blue
*
255
))}${
_toTwoDigitHex
(
Math
.
round
(
color
.
alpha
*
255
))}
`
;
}
result
.
push
({
label
:
label
,
textEdit
:
new
CodeTextEdit
(
colorInfo
.
range
,
label
)
});
const
hsl
=
convert
.
rgb
.
hsl
(
Math
.
round
(
color
.
red
*
255
),
Math
.
round
(
color
.
green
*
255
),
Math
.
round
(
color
.
blue
*
255
));
if
(
color
.
alpha
===
1
)
{
label
=
`hsl(
${
hsl
[
0
]}
,
${
hsl
[
1
]}
%,
${
hsl
[
2
]}
%)`
;
}
else
{
label
=
`hsla(
${
hsl
[
0
]}
,
${
hsl
[
1
]}
%,
${
hsl
[
2
]}
%,
${
color
.
alpha
}
)`
;
}
result
.
push
({
label
:
label
,
textEdit
:
new
CodeTextEdit
(
colorInfo
.
range
,
label
)
});
return
result
;
let
params
:
ColorPresentationParams
=
{
textDocument
:
client
.
code2ProtocolConverter
.
asTextDocumentIdentifier
(
document
),
colorInfo
:
{
range
:
client
.
code2ProtocolConverter
.
asRange
(
colorInfo
.
range
),
color
:
colorInfo
.
color
}
};
return
client
.
sendRequest
(
ColorPresentationRequest
.
type
,
params
).
then
(
presentations
=>
{
return
presentations
.
map
(
p
=>
{
let
presentation
=
new
ColorPresentation
(
p
.
label
);
presentation
.
textEdit
=
p
.
textEdit
&&
client
.
protocol2CodeConverter
.
asTextEdit
(
p
.
textEdit
);
presentation
.
additionalTextEdits
=
p
.
additionalTextEdits
&&
client
.
protocol2CodeConverter
.
asTextEdits
(
p
.
additionalTextEdits
);
return
presentation
;
});
});
}
}));
});
...
...
extensions/css/npm-shrinkwrap.json
浏览文件 @
1cf7612e
...
...
@@ -2,30 +2,26 @@
"name"
:
"css"
,
"version"
:
"0.1.0"
,
"dependencies"
:
{
"color-convert"
:
{
"version"
:
"0.5.3"
,
"from"
:
"color-convert@>=0.5.0 <0.6.0"
,
"resolved"
:
"https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz"
},
"vscode-jsonrpc"
:
{
"version"
:
"3.
3.1
"
,
"from"
:
"vscode-jsonrpc@>=3.
3
.0 <4.0.0"
,
"resolved"
:
"https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-3.
3.1
.tgz"
"version"
:
"3.
4.0
"
,
"from"
:
"vscode-jsonrpc@>=3.
4
.0 <4.0.0"
,
"resolved"
:
"https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-3.
4.0
.tgz"
},
"vscode-languageclient"
:
{
"version"
:
"3.4.
0-next.17
"
,
"version"
:
"3.4.
2
"
,
"from"
:
"vscode-languageclient@next"
,
"resolved"
:
"https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-3.4.
0-next.17
.tgz"
"resolved"
:
"https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-3.4.
2
.tgz"
},
"vscode-languageserver-protocol"
:
{
"version"
:
"3.
1.1
"
,
"from"
:
"vscode-languageserver-protocol@
>=3.1.1 <4.0.0
"
,
"resolved"
:
"https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.
1.1
.tgz"
"version"
:
"3.
4.2
"
,
"from"
:
"vscode-languageserver-protocol@
next
"
,
"resolved"
:
"https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.
4.2
.tgz"
},
"vscode-languageserver-types"
:
{
"version"
:
"3.
3
.0"
,
"from"
:
"vscode-languageserver-types@>=3.
3
.0 <4.0.0"
,
"resolved"
:
"https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.
3
.0.tgz"
"version"
:
"3.
4
.0"
,
"from"
:
"vscode-languageserver-types@>=3.
4
.0 <4.0.0"
,
"resolved"
:
"https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.
4
.0.tgz"
},
"vscode-nls"
:
{
"version"
:
"2.0.2"
,
...
...
extensions/css/package.json
浏览文件 @
1cf7612e
...
...
@@ -720,12 +720,11 @@
]
},
"dependencies"
:
{
"color-convert"
:
"^0.5.3"
,
"vscode-languageclient"
:
"3.4.0-next.17"
,
"vscode-languageserver-protocol"
:
"^3.1.1"
,
"vscode-languageclient"
:
"^3.4.2"
,
"vscode-languageserver-protocol"
:
"^3.4.2"
,
"vscode-nls"
:
"^2.0.2"
},
"devDependencies"
:
{
"@types/node"
:
"^6.0.51"
}
}
\ No newline at end of file
}
extensions/css/server/npm-shrinkwrap.json
浏览文件 @
1cf7612e
...
...
@@ -3,29 +3,29 @@
"version"
:
"1.0.0"
,
"dependencies"
:
{
"vscode-css-languageservice"
:
{
"version"
:
"2.1.
6
"
,
"version"
:
"2.1.
7
"
,
"from"
:
"vscode-css-languageservice@next"
,
"resolved"
:
"https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-2.1.
6
.tgz"
"resolved"
:
"https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-2.1.
7
.tgz"
},
"vscode-jsonrpc"
:
{
"version"
:
"3.
3.1
"
,
"from"
:
"vscode-jsonrpc@>=3.
3
.0 <4.0.0"
,
"resolved"
:
"https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-3.
3.1
.tgz"
"version"
:
"3.
4.0
"
,
"from"
:
"vscode-jsonrpc@>=3.
4
.0 <4.0.0"
,
"resolved"
:
"https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-3.
4.0
.tgz"
},
"vscode-languageserver"
:
{
"version"
:
"3.4.
0-next.6
"
,
"version"
:
"3.4.
2
"
,
"from"
:
"vscode-languageserver@next"
,
"resolved"
:
"https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-3.4.
0-next.6
.tgz"
"resolved"
:
"https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-3.4.
2
.tgz"
},
"vscode-languageserver-protocol"
:
{
"version"
:
"3.
1.1
"
,
"from"
:
"vscode-languageserver-protocol@
>=3.1.1 <4.0.0
"
,
"resolved"
:
"https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.
1.1
.tgz"
"version"
:
"3.
4.2
"
,
"from"
:
"vscode-languageserver-protocol@
next
"
,
"resolved"
:
"https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.
4.2
.tgz"
},
"vscode-languageserver-types"
:
{
"version"
:
"3.
3
.0"
,
"version"
:
"3.
4
.0"
,
"from"
:
"vscode-languageserver-types@>=3.3.0 <4.0.0"
,
"resolved"
:
"https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.
3
.0.tgz"
"resolved"
:
"https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.
4
.0.tgz"
},
"vscode-nls"
:
{
"version"
:
"2.0.2"
,
...
...
extensions/css/server/package.json
浏览文件 @
1cf7612e
...
...
@@ -8,9 +8,9 @@
"node"
:
"*"
},
"dependencies"
:
{
"vscode-css-languageservice"
:
"^2.1.
6
"
,
"vscode-languageserver"
:
"
3.4.0-next.6
"
,
"vscode-languageserver-protocol"
:
"^3.
1.1
"
"vscode-css-languageservice"
:
"^2.1.
7
"
,
"vscode-languageserver"
:
"
^3.4.2
"
,
"vscode-languageserver-protocol"
:
"^3.
4.2
"
},
"devDependencies"
:
{
"@types/node"
:
"^6.0.51"
...
...
extensions/css/server/src/cssServerMain.ts
浏览文件 @
1cf7612e
...
...
@@ -5,11 +5,13 @@
'
use strict
'
;
import
{
createConnection
,
IConnection
,
TextDocuments
,
TextDocument
,
InitializeParams
,
InitializeResult
,
ServerCapabilities
createConnection
,
IConnection
,
TextDocuments
,
InitializeParams
,
InitializeResult
,
ServerCapabilities
}
from
'
vscode-languageserver
'
;
import
{
GetConfigurationRequest
}
from
'
vscode-languageserver-protocol/lib/protocol.configuration.proposed
'
;
import
{
DocumentColorRequest
,
ServerCapabilities
as
CPServerCapabilities
}
from
'
vscode-languageserver-protocol/lib/protocol.colorProvider.proposed
'
;
import
{
TextDocument
}
from
'
vscode-languageserver-types
'
;
import
{
ConfigurationRequest
}
from
'
vscode-languageserver-protocol/lib/protocol.configuration.proposed
'
;
import
{
DocumentColorRequest
,
ServerCapabilities
as
CPServerCapabilities
,
ColorPresentationRequest
}
from
'
vscode-languageserver-protocol/lib/protocol.colorProvider.proposed
'
;
import
{
getCSSLanguageService
,
getSCSSLanguageService
,
getLESSLanguageService
,
LanguageSettings
,
LanguageService
,
Stylesheet
}
from
'
vscode-css-languageservice
'
;
import
{
getLanguageModelCache
}
from
'
./languageModelCache
'
;
...
...
@@ -96,7 +98,7 @@ function getDocumentSettings(textDocument: TextDocument): Thenable<LanguageSetti
let
promise
=
documentSettings
[
textDocument
.
uri
];
if
(
!
promise
)
{
let
configRequestParam
=
{
items
:
[{
scopeUri
:
textDocument
.
uri
,
section
:
textDocument
.
languageId
}]
};
promise
=
connection
.
sendRequest
(
Get
ConfigurationRequest
.
type
,
configRequestParam
).
then
(
s
=>
s
[
0
]);
promise
=
connection
.
sendRequest
(
ConfigurationRequest
.
type
,
configRequestParam
).
then
(
s
=>
s
[
0
]);
documentSettings
[
textDocument
.
uri
]
=
promise
;
}
return
promise
;
...
...
@@ -211,6 +213,15 @@ connection.onRequest(DocumentColorRequest.type, params => {
return
[];
});
connection
.
onRequest
(
ColorPresentationRequest
.
type
,
params
=>
{
let
document
=
documents
.
get
(
params
.
textDocument
.
uri
);
if
(
document
)
{
let
stylesheet
=
stylesheets
.
get
(
document
);
return
getLanguageService
(
document
).
getColorPresentations
(
document
,
stylesheet
,
params
.
colorInfo
);
}
return
[];
});
connection
.
onRenameRequest
(
renameParameters
=>
{
let
document
=
documents
.
get
(
renameParameters
.
textDocument
.
uri
);
let
stylesheet
=
stylesheets
.
get
(
document
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录