Skip to content

Commit f92fc3e

Browse files
committed
Parse dotfiles as filenames (leading . only)
1 parent 678ded6 commit f92fc3e

2 files changed

Lines changed: 24 additions & 17 deletions

File tree

parse.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export default function parse(code) {
1212
}
1313

1414
if (commentContents) {
15-
let regex = /^(\S+\.\S+)?\s*(\(([^\)]+)\))?/;
15+
let regex = /^(\S*\.\S+)?\s*(\(([^\)]+)\))?/;
1616
let match = regex.exec(commentContents);
1717

1818
if (match) {

test.js

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,58 +6,65 @@ import parse from "./parse";
66
import { CodeplusInstance } from "./index";
77

88
test("parse # filename", () => {
9-
const parsed = parse("# filename.js\nfunction foo() {}");
10-
expect(parsed).toEqual({
9+
expect(parse("# filename.js\nfunction foo() {}")).toEqual({
1110
filename: "filename.js",
1211
displayName: "",
1312
});
1413
});
1514

1615
test("parse // filename", () => {
17-
const parsed = parse("// filename.js\nfunction foo() {}");
18-
expect(parsed).toEqual({
16+
expect(parse("// filename.js\nfunction foo() {}")).toEqual({
1917
filename: "filename.js",
2018
displayName: "",
2119
});
2220
});
2321

2422
test("parse /* filename", () => {
25-
const parsed = parse("/* filename.js */\nfunction foo() {}");
26-
expect(parsed).toEqual({
23+
expect(parse("/* filename.js */\nfunction foo() {}")).toEqual({
2724
filename: "filename.js",
2825
displayName: "",
2926
});
3027
});
3128

3229
test("parse <!-- filename", () => {
33-
const parsed = parse("<!-- filename.js -->\nfunction foo() {}");
34-
expect(parsed).toEqual({
30+
expect(parse("<!-- filename.js -->\nfunction foo() {}")).toEqual({
3531
filename: "filename.js",
3632
displayName: "",
3733
});
3834
});
3935

4036
test("parse filename multiple dots", () => {
41-
const parsed = parse("# test.filename.template.js\nfunction foo() {}");
42-
expect(parsed).toEqual({
37+
expect(parse("# test.filename.template.js\nfunction foo() {}")).toEqual({
4338
filename: "test.filename.template.js",
4439
displayName: "",
4540
});
41+
42+
expect(
43+
parse("# test.filename.template.js (Display)\nfunction foo() {}")
44+
).toEqual({
45+
filename: "test.filename.template.js",
46+
displayName: "Display",
47+
});
48+
});
49+
50+
test("parse dotfile name", () => {
51+
expect(parse("# .env\nfunction foo() {}")).toEqual({
52+
filename: ".env",
53+
displayName: "",
54+
});
4655
});
4756

4857
test("parse display without filename", () => {
49-
const parsed = parse("# (GitHub with spaces)\nfunction foo() {}");
50-
expect(parsed).toEqual({
58+
expect(parse("# (GitHub with spaces)\nfunction foo() {}")).toEqual({
5159
filename: "",
5260
displayName: "GitHub with spaces",
5361
});
5462
});
5563

5664
test("parse filename and display", () => {
57-
const parsed = parse(
58-
"# filename.js (GitHub with spaces) - more here\nfunction foo() {}"
59-
);
60-
expect(parsed).toEqual({
65+
expect(
66+
parse("# filename.js (GitHub with spaces) - more here\nfunction foo() {}")
67+
).toEqual({
6168
filename: "filename.js",
6269
displayName: "GitHub with spaces",
6370
});

0 commit comments

Comments
 (0)