From a7f41627f1c9607479484c19c878b1ff6d140e5b Mon Sep 17 00:00:00 2001 From: Marcel Gerber Date: Wed, 13 Aug 2014 01:34:31 +0200 Subject: [PATCH 1/4] Quick Docs: Ignore vendor prefixes if needed --- src/extensions/default/WebPlatformDocs/main.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/extensions/default/WebPlatformDocs/main.js b/src/extensions/default/WebPlatformDocs/main.js index 6fe18a8dec0..ca9e1915b74 100644 --- a/src/extensions/default/WebPlatformDocs/main.js +++ b/src/extensions/default/WebPlatformDocs/main.js @@ -110,6 +110,10 @@ define(function (require, exports, module) { .done(function (cssDocs) { // Construct inline widget (if we have docs for this property) var cssPropDetails = cssDocs.PROPERTIES["css/properties/" + cssPropName]; + if (!cssPropDetails) { + cssPropName = cssPropName.replace(/^-\w+-/, ""); // remove possible vendor prefixes + cssPropDetails = cssDocs.PROPERTIES["css/properties/" + cssPropName]; + } if (cssPropDetails) { var inlineWidget = new InlineDocsViewer(cssPropName, cssPropDetails); inlineWidget.load(hostEditor); From 9bd9582282ae0e4d7fd2682c693dff148eedc019 Mon Sep 17 00:00:00 2001 From: Marcel Gerber Date: Tue, 9 Sep 2014 13:23:25 +0200 Subject: [PATCH 2/4] Use a more strict RegExp --- src/extensions/default/WebPlatformDocs/main.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/extensions/default/WebPlatformDocs/main.js b/src/extensions/default/WebPlatformDocs/main.js index ca9e1915b74..e37f412740e 100644 --- a/src/extensions/default/WebPlatformDocs/main.js +++ b/src/extensions/default/WebPlatformDocs/main.js @@ -111,8 +111,10 @@ define(function (require, exports, module) { // Construct inline widget (if we have docs for this property) var cssPropDetails = cssDocs.PROPERTIES["css/properties/" + cssPropName]; if (!cssPropDetails) { - cssPropName = cssPropName.replace(/^-\w+-/, ""); // remove possible vendor prefixes - cssPropDetails = cssDocs.PROPERTIES["css/properties/" + cssPropName]; + cssPropName = cssPropName.replace(/^-(webkit|moz|ms|o)-/, ""); // remove possible vendor prefixes + if (cssPropName) { + cssPropDetails = cssDocs.PROPERTIES["css/properties/" + cssPropName]; + } } if (cssPropDetails) { var inlineWidget = new InlineDocsViewer(cssPropName, cssPropDetails); From bdec0142706189c17f68a460d02563637158617e Mon Sep 17 00:00:00 2001 From: Marcel Gerber Date: Tue, 9 Sep 2014 19:48:19 +0200 Subject: [PATCH 3/4] Added unit tests --- .../default/WebPlatformDocs/unittest-files/test1.css | 4 +++- src/extensions/default/WebPlatformDocs/unittests.js | 10 ++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/extensions/default/WebPlatformDocs/unittest-files/test1.css b/src/extensions/default/WebPlatformDocs/unittest-files/test1.css index 5732a8906b6..2c36ef186ca 100644 --- a/src/extensions/default/WebPlatformDocs/unittest-files/test1.css +++ b/src/extensions/default/WebPlatformDocs/unittest-files/test1.css @@ -3,4 +3,6 @@ {{3}}does-not-exist: 0; /* {{5}}color: #000 */ background: border{{4}}; -} \ No newline at end of file + {{6}}-webkit-animation: none; + {{7}}-border-width: 2px; +} diff --git a/src/extensions/default/WebPlatformDocs/unittests.js b/src/extensions/default/WebPlatformDocs/unittests.js index 2823625b28d..f4cb956ae60 100644 --- a/src/extensions/default/WebPlatformDocs/unittests.js +++ b/src/extensions/default/WebPlatformDocs/unittests.js @@ -139,6 +139,16 @@ define(function (require, exports, module) { queryInlineAtPos(testCSSInfo, 3, false); }); + it("should open docs for a vendor-prefixed CSS property", function () { + /* css -webkit- prefixed property */ + queryInlineAtPos(testCSSInfo, 6, true, "animation"); + }); + + it("should not open docs for an invalid CSS property (looking like a vendor-prefixed one)", function () { + /* css property invalidly prefixed */ + queryInlineAtPos(testCSSInfo, 7, false); + }); + }); describe("InlineDocsProvider parsing in HTML", function () { From 885e8984e8b0c521cc486362feab17469d528e1c Mon Sep 17 00:00:00 2001 From: Marcel Gerber Date: Tue, 9 Sep 2014 19:50:25 +0200 Subject: [PATCH 4/4] Fix CSSUtils to work better with vendor-prefixed properties --- src/language/CSSUtils.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/language/CSSUtils.js b/src/language/CSSUtils.js index 725dbad14d6..5330ecff1b8 100644 --- a/src/language/CSSUtils.js +++ b/src/language/CSSUtils.js @@ -237,6 +237,10 @@ define(function (require, exports, module) { testToken.type === "tag") { propName = testToken.string; offset = 0; + } else if (testToken.type === "meta" || testToken.string === "-") { + ctx.pos = testPos; + ctx.token = testToken; + return _getPropNameInfo(ctx); } }