anchor.diff:      glob = new Glob(sectionId);
     }
   
  -  bool matchesPath(String path) {
  -    return (glob.matchPath(path) == Glob.COMPLETE_MATCH);
  +  bool matchesFull(String path) => glob.matchPath(path) == Glob.COMPLETE_MATCH;
  +  bool matchesPrefix(String path) {
  +    int matchType = glob.matchPath(path);
  +    return matchType == Glob.COMPLETE_MATCH || matchType == Glob.PREFIX_MATCH;
     }
   
     String getValue(String propertyName) {
  
positive.code:   }
  }
  
  class ConfigSectionMatcher {
    List<ConfigSection> configSections = [];
    workspace.File file;
    chrome.ChromeFileEntry get fileEntry => file.entry;
  
    ConfigSectionMatcher(this.file);
  
    Future<ConfigFile> getSections() {
      return fileEntry.getParent().then((chrome.DirectoryEntry dir) {
        return getSectionsForPath(dir);
      });
    }
  
    Future<ConfigFile> getSectionsForPath(chrome.DirectoryEntry dir) {
      int insertIndex = configSections.length;
      return dir.getFile(".editorConfig").then((chrome.ChromeFileEntry configFile) {
        return configFile.readText();
  
negative.code:     }).then((String configContent) {
        new ConfigFile(configContent).sections.forEach(
            (ConfigSection section) {
          var fullPath = entry.fullPath;
          if (section.matchesPrefix(fullPath)) {
            configSections.insert(insertIndex, section);
          }
        });
  
        if (container.project.entry.fullPath != dir.fullPath) {
          return dir.getParent();
        }
      }).then((chrome.DirectoryEntry parent) {
        if (parent != null) {
          return _getSections(parent);
        }
      });
    }
  }
  
  