Skip to content

Commit 0669215

Browse files
Nemo157syphar
authored andcommitted
Support looking up syntax via extension on a dotfile
1 parent 200aaee commit 0669215

File tree

2 files changed

+30
-6
lines changed

2 files changed

+30
-6
lines changed

src/web/highlight.rs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,8 @@ fn try_with_syntax(syntax: &SyntaxReference, code: &str) -> Result<String> {
3838
fn select_syntax(name: Option<&str>, code: &str) -> &'static SyntaxReference {
3939
name.and_then(|name| {
4040
SYNTAXES.find_syntax_by_token(name).or_else(|| {
41-
if name.starts_with('.') {
42-
None
43-
} else {
44-
name.rsplit_once('.')
45-
.and_then(|(_, ext)| SYNTAXES.find_syntax_by_token(ext))
46-
}
41+
name.rsplit_once('.')
42+
.and_then(|(_, ext)| SYNTAXES.find_syntax_by_token(ext))
4743
})
4844
})
4945
.or_else(|| SYNTAXES.find_syntax_by_first_line(code))
@@ -75,4 +71,11 @@ mod tests {
7571
assert_eq!(select_syntax(Some("Cargo.toml.orig"), "").name, toml.name);
7672
assert_eq!(select_syntax(Some("Cargo.lock"), "").name, toml.name);
7773
}
74+
75+
#[test]
76+
fn dotfile_with_extension() {
77+
let toml = select_syntax(Some("toml"), "");
78+
79+
assert_eq!(select_syntax(Some(".rustfmt.toml"), "").name, toml.name);
80+
}
7881
}

src/web/source.rs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -457,4 +457,25 @@ mod tests {
457457
Ok(())
458458
});
459459
}
460+
461+
#[test]
462+
fn dotfiles_with_extension_are_highlighted() {
463+
wrapper(|env| {
464+
env.fake_release()
465+
.name("fake")
466+
.version("0.1.0")
467+
.source_file(".rustfmt.toml", b"[rustfmt]")
468+
.create()?;
469+
470+
let web = env.frontend();
471+
472+
let response = web
473+
.get("/crate/fake/0.1.0/source/.rustfmt.toml")
474+
.send()?
475+
.text()?;
476+
assert!(response.contains(r#"<span class="syntax-source syntax-toml">"#));
477+
478+
Ok(())
479+
});
480+
}
460481
}

0 commit comments

Comments
 (0)