From e64f7bfa8226f8ba20043c99289db4cf0d6e55b7 Mon Sep 17 00:00:00 2001 From: Jan Thiel Date: Tue, 9 Sep 2014 13:23:53 +0200 Subject: [PATCH 1/3] Allow @import RegEx to find all Import Types Added missing Import directives to RegEx: - once - reference - multiple - inline getImports should now also return @import (reference) file.less @import (multiple) file.less @import (once) file.less @import (inline) file.less --- src/main/java/org/lesscss/LessSource.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/lesscss/LessSource.java b/src/main/java/org/lesscss/LessSource.java index 30b6f98..b9984b9 100644 --- a/src/main/java/org/lesscss/LessSource.java +++ b/src/main/java/org/lesscss/LessSource.java @@ -42,7 +42,7 @@ public class LessSource { /** * The Pattern used to match imported files. */ - private static final Pattern IMPORT_PATTERN = Pattern.compile("^(?!\\s*//\\s*).*(@import\\s+(url\\(|\\((less|css)\\))?\\s*(\"|')(.+)\\s*(\"|')(\\))?(.*);).*$", MULTILINE); + private static final Pattern IMPORT_PATTERN = Pattern.compile("^(?!\\s*//\\s*).*(@import\\s+(url\\(|\\((less|css|once|inline|reference|multiple)\\))?\\s*(\"|')(.+)\\s*(\"|')(\\))?(.*);).*$", MULTILINE); private Resource resource; private String content; From 4019b9b73bbfe3950f04501d7dc37e46b5424aa8 Mon Sep 17 00:00:00 2001 From: Jan Thiel Date: Wed, 10 Sep 2014 13:48:02 +0200 Subject: [PATCH 2/3] Fixed Import Type processing for new Import Directives Extended the check whether a file should be treated as LESS import with the new directives. --- src/main/java/org/lesscss/LessSource.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/lesscss/LessSource.java b/src/main/java/org/lesscss/LessSource.java index b9984b9..4921c6d 100644 --- a/src/main/java/org/lesscss/LessSource.java +++ b/src/main/java/org/lesscss/LessSource.java @@ -42,7 +42,7 @@ public class LessSource { /** * The Pattern used to match imported files. */ - private static final Pattern IMPORT_PATTERN = Pattern.compile("^(?!\\s*//\\s*).*(@import\\s+(url\\(|\\((less|css|once|inline|reference|multiple)\\))?\\s*(\"|')(.+)\\s*(\"|')(\\))?(.*);).*$", MULTILINE); + private static final Pattern IMPORT_PATTERN = Pattern.compile("^(?!\\s*//\\s*).*(@import\\s+(url\\(|\\((less|css)\\))?\\s*(\"|')(.+)\\s*(\"|')(\\))?(.*);).*$", MULTILINE); private Resource resource; private String content; @@ -192,10 +192,14 @@ public Map getImports() { private void resolveImports() throws IOException { Matcher importMatcher = IMPORT_PATTERN.matcher(normalizedContent); while (importMatcher.find()) { + // Extract the import type, grab the file name to import String importedResource = importMatcher.group(5); + // Check whether a file ending is present (file.css | file.less), if not, add .less importedResource = importedResource.matches(".*\\.(le?|c)ss$") ? importedResource : importedResource + ".less"; + // Get the import type. First check if directive is set. If so, take it. If none directive is set, use file ending String importType = importMatcher.group(3)==null ? importedResource.substring(importedResource.lastIndexOf(".") + 1) : importMatcher.group(3); - if (importType.equals("less")) { + // Only process files that are LESS imports (recognized by Import directive or file ending in "importType") + if (importType.equals("less") || importType.equals("reference") || importType.equals("once") || importType.equals("multiple")) { logger.debug("Importing %s", importedResource); if( !imports.containsKey(importedResource) ) { From 3e132e6d23634baa4d6a98a533724cc13b85c304 Mon Sep 17 00:00:00 2001 From: Jan Thiel Date: Wed, 10 Sep 2014 13:49:47 +0200 Subject: [PATCH 3/3] Update LessSource.java Fixed regression after stupid Copy & Paste... --- src/main/java/org/lesscss/LessSource.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/lesscss/LessSource.java b/src/main/java/org/lesscss/LessSource.java index 4921c6d..7bccda6 100644 --- a/src/main/java/org/lesscss/LessSource.java +++ b/src/main/java/org/lesscss/LessSource.java @@ -42,7 +42,7 @@ public class LessSource { /** * The Pattern used to match imported files. */ - private static final Pattern IMPORT_PATTERN = Pattern.compile("^(?!\\s*//\\s*).*(@import\\s+(url\\(|\\((less|css)\\))?\\s*(\"|')(.+)\\s*(\"|')(\\))?(.*);).*$", MULTILINE); + private static final Pattern IMPORT_PATTERN = Pattern.compile("^(?!\\s*//\\s*).*(@import\\s+(url\\(|\\((less|css|once|inline|reference|multiple)\\))?\\s*(\"|')(.+)\\s*(\"|')(\\))?(.*);).*$", MULTILINE); private Resource resource; private String content;