public void apply(IDocument document) {
   if (this.getRepValue().getType() != NewReplaceValue.TYPE_PAR) {
     String prefix = this.getPrefix();
     String replaceString = prefix + this.getItem();
     if (getItem().getType() == ReferenceUtilities.REF_ENUMVAR
         || this.getRepValue().getType() == NewReplaceValue.TYPE_NONE) {
       // Not Sure why this was toString()
       // replaceString = this.item.toString();
       replaceString = this.getItem().getname();
     }
     if (getItem().getType() == ReferenceUtilities.REF_MODINSTANCE_CONNECT) {
       ModInstanceConnect connect = (ModInstanceConnect) getItem().getObject();
       String name = connect.getname();
       if (prefix.length() == 1) replaceString = name;
       else replaceString = prefix + name;
     }
     if (ReferenceUtilities.checkType(getItem().getType(), ReferenceUtilities.REF_PORT_TOP) == 0) {
       if (!prefix.equalsIgnoreCase("(")) {
         replaceString = prefix + getItem().getname();
       } else {
         replaceString = getItem().getname();
       }
     }
     if (replaceString.startsWith(".")) {
       replaceString = replaceString.substring(1);
     }
     /*if (item.getType() == ReferenceUtilities.REF_COMPONENT) {
         replaceString = "";
     }
     if (item.getType() == ReferenceUtilities.REF_INSTANCE_MODULE) {
         replaceString = "";
     }*/
     try {
       replaceString = replaceString.trim();
       if (this.getRepValue().getLength() == 0) {
         String ustr = document.get(this.getRepValue().getSpos() - 1, 1);
         document.replace(
             this.getRepValue().getSpos() - 1,
             this.getRepValue().getLength() + 1,
             ustr + replaceString);
       } else {
         document.replace(
             this.getRepValue().getSpos(), this.getRepValue().getLength(), replaceString);
       }
     } catch (BadLocationException e) {
       HardwareLog.logError(e);
     }
   } else {
     String prefix = this.getPrefix();
     String replaceString = prefix + this.getItem();
     replaceString = replaceString.trim();
     try {
       document.replace(
           this.getRepValue().getSpos(), this.getRepValue().getLength(), replaceString);
     } catch (BadLocationException e) {
       HardwareLog.logError(e);
     }
   }
 }
예제 #2
0
 private void handleKeyword(IDocument d, String key, int sp, int ep) {
   String k = key.toUpperCase();
   if (!k.equals(key)) {
     try {
       d.replace(sp, ep - sp + 1, k);
     } catch (BadLocationException e) {
       HardwareLog.logError(e);
     }
   }
 }
예제 #3
0
  /** Needs Binary Search over keywords */
  private void checkForKeywords(IDocument d, DocumentCommand c) {
    int off = c.offset - 1;

    char u;
    try {
      if (this.isCommentLine(d, c.offset)) return;
      int ep = off;
      u = d.getChar(off);
      String key = "";
      while (Character.isJavaIdentifierPart(u)) {
        key = u + key;
        off = off - 1;
        u = d.getChar(off);
      }
      int sp = off + 1;
      for (String ukey : VhdlScanner.keywords) {
        if (ukey.equalsIgnoreCase(key)) {
          this.handleKeyword(d, key, sp, ep);
        }
      }
    } catch (BadLocationException e) {
      HardwareLog.logError(e);
    }
  }