From 6b74e23c53f84789b8e5e203c451b8c0814f1a30 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Wed, 1 Mar 2017 18:22:54 -0800 Subject: [PATCH] Relax Language First Line Match (#21586) * Relax Language First Line Match Fixes #21533 **Bug** The first line pattern for a language currently requires the entire line to match. This does is different from how tools such as textmate use firstLineMatch **Fix** Relax this restriction so that any match is used * Fix failing test --- src/vs/base/common/mime.ts | 3 +-- src/vs/base/test/common/mime.test.ts | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/vs/base/common/mime.ts b/src/vs/base/common/mime.ts index f05d9576d9b..2645fa3c01b 100644 --- a/src/vs/base/common/mime.ts +++ b/src/vs/base/common/mime.ts @@ -202,9 +202,8 @@ function guessMimeTypeByFirstline(firstLine: string): string { continue; } - // Make sure the entire line matches, not just a subpart. let matches = firstLine.match(association.firstline); - if (matches && matches.length > 0 && matches[0].length === firstLine.length) { + if (matches && matches.length > 0) { return association.mime; } } diff --git a/src/vs/base/test/common/mime.test.ts b/src/vs/base/test/common/mime.test.ts index fda5719a3b1..c1d85d7fad6 100644 --- a/src/vs/base/test/common/mime.test.ts +++ b/src/vs/base/test/common/mime.test.ts @@ -37,7 +37,7 @@ suite('Mime', () => { guess = guessMimeTypes('Randomfile.noregistration', 'RegexesAreNice'); assert.deepEqual(guess, ['text/nice-regex', 'text/plain']); - guess = guessMimeTypes('Randomfile.noregistration', 'RegexesAreNiceee'); + guess = guessMimeTypes('Randomfile.noregistration', 'RegexesAreNotNice'); assert.deepEqual(guess, ['application/unknown']); guess = guessMimeTypes('Codefile', 'RegexesAreNice'); -- GitLab