Beispiel #1
0
 /**
  * Returns null when no match found! Assumes the document has been partitioned via HTML partition
  * scanner
  *
  * @param document
  * @param offset
  * @param partitionsToSearch A collection of the string partition names to search for tags.
  *     Optimization to avoid looking in non HTML/XML tags!
  * @return
  */
 public static IRegion findMatchingTag(
     IDocument document, int offset, Collection<String> partitionsToSearch) {
   try {
     ITypedRegion region = document.getPartition(offset);
     if (!partitionsToSearch.contains(region.getType())) {
       return null;
     }
     String src = document.get(region.getOffset(), region.getLength());
     if (src.startsWith("</")) // $NON-NLS-1$
     {
       return findMatchingOpen(document, region, partitionsToSearch);
     }
     // Handle self-closing tags!
     if (src.endsWith("/>")) // $NON-NLS-1$
     {
       return null;
     }
     return findMatchingClose(document, region, partitionsToSearch);
   } catch (BadLocationException e) {
     XMLPlugin.logError(e.getMessage(), e);
   }
   return null;
 }