Make control token modifier less ambiguous

In textmate, keyword.control is used for all kinds of things; in fact,
the default scope mapping for keyword is keyword.control!

So let's add a less ambiguous controlFlow modifier

See Microsoft/vscode#94367
This commit is contained in:
Aleksey Kladov 2020-04-05 14:46:07 +02:00
parent 6207ac90da
commit 48bc0ca745
5 changed files with 9 additions and 12 deletions

View file

@ -232,7 +232,7 @@ fn highlight_element(
| T![loop]
| T![match]
| T![return]
| T![while] => h | HighlightModifier::Control,
| T![while] => h | HighlightModifier::ControlFlow,
T![unsafe] => h | HighlightModifier::Unsafe,
_ => h,
}

View file

@ -44,7 +44,7 @@ pub enum HighlightTag {
#[repr(u8)]
pub enum HighlightModifier {
/// Used with keywords like `if` and `break`.
Control = 0,
ControlFlow = 0,
/// `foo` in `fn foo(x: i32)` is a definition, `foo` in `foo(90 + 2)` is
/// not.
Definition,
@ -91,7 +91,7 @@ impl fmt::Display for HighlightTag {
impl HighlightModifier {
const ALL: &'static [HighlightModifier] = &[
HighlightModifier::Control,
HighlightModifier::ControlFlow,
HighlightModifier::Definition,
HighlightModifier::Mutable,
HighlightModifier::Unsafe,
@ -99,7 +99,7 @@ impl HighlightModifier {
fn as_str(self) -> &'static str {
match self {
HighlightModifier::Control => "control",
HighlightModifier::ControlFlow => "control",
HighlightModifier::Definition => "declaration",
HighlightModifier::Mutable => "mutable",
HighlightModifier::Unsafe => "unsafe",

View file

@ -20,7 +20,7 @@ use ra_vfs::LineEndings;
use crate::{
req,
semantic_tokens::{self, ModifierSet, CONSTANT, CONTROL, MUTABLE, UNSAFE},
semantic_tokens::{self, ModifierSet, CONSTANT, CONTROL_FLOW, MUTABLE, UNSAFE},
world::WorldSnapshot,
Result,
};
@ -378,7 +378,7 @@ impl Conv for Highlight {
for modifier in self.modifiers.iter() {
let modifier = match modifier {
HighlightModifier::Definition => SemanticTokenModifier::DECLARATION,
HighlightModifier::Control => CONTROL,
HighlightModifier::ControlFlow => CONTROL_FLOW,
HighlightModifier::Mutable => MUTABLE,
HighlightModifier::Unsafe => UNSAFE,
};

View file

@ -12,7 +12,7 @@ pub(crate) const TYPE_ALIAS: SemanticTokenType = SemanticTokenType::new("typeAli
pub(crate) const UNION: SemanticTokenType = SemanticTokenType::new("union");
pub(crate) const CONSTANT: SemanticTokenModifier = SemanticTokenModifier::new("constant");
pub(crate) const CONTROL: SemanticTokenModifier = SemanticTokenModifier::new("control");
pub(crate) const CONTROL_FLOW: SemanticTokenModifier = SemanticTokenModifier::new("controlFlow");
pub(crate) const MUTABLE: SemanticTokenModifier = SemanticTokenModifier::new("mutable");
pub(crate) const UNSAFE: SemanticTokenModifier = SemanticTokenModifier::new("unsafe");
@ -56,7 +56,7 @@ pub(crate) const SUPPORTED_MODIFIERS: &[SemanticTokenModifier] = &[
CONSTANT,
MUTABLE,
UNSAFE,
CONTROL,
CONTROL_FLOW,
];
#[derive(Default)]

View file

@ -512,7 +512,7 @@
"description": "Style for compile-time constants"
},
{
"id": "control",
"id": "controlFlow",
"description": "Style for control flow keywords"
},
{
@ -546,9 +546,6 @@
"keyword.unsafe": [
"keyword.other.unsafe"
],
"keyword.control": [
"keyword.control"
],
"variable.constant": [
"entity.name.constant"
]