diff --git a/src/main/java/org/lesscss/LessSource.java b/src/main/java/org/lesscss/LessSource.java
index 30b6f98..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;
@@ -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) ) {