Package tk.eclipse.plugin.htmleditor.editors

Examples of tk.eclipse.plugin.htmleditor.editors.FoldingInfo


          }
        // end comment
        } else if(c=='*' && type==FOLDING_COMMENT && source.length() > i+1){
          if(source.charAt(i+1)=='/'){
            if(doc.getLineOfOffset(start)!=doc.getLineOfOffset(i)){
              list.add(new FoldingInfo(start, i+2 + FoldingInfo.countUpLineDelimiter(source, i+2)));
            }
            if(startBackup!=-1){
              type = FOLDING_STYLE;
              start = startBackup;
            } else {
              type = FOLDING_NONE;
            }
            startBackup = -1;
            i++;
          }
        // start blace
        } else if(c=='{' && type==FOLDING_NONE){
          if(type==FOLDING_COMMENT){
            startBackup = start;
          }
          start = i;
          type = FOLDING_STYLE;
        // end blace
        } else if(type==FOLDING_STYLE && c=='}'){
          if(doc.getLineOfOffset(start)!=doc.getLineOfOffset(i)){
            list.add(new FoldingInfo(start, i+1 + FoldingInfo.countUpLineDelimiter(source, i+1)));
          }
          if(startBackup!=-1){
            type = FOLDING_COMMENT;
            start = startBackup;
          }
View Full Code Here


      IDocument doc = getDocumentProvider().getDocument(getEditorInput());
      String source = doc.get();
     
      ArrayList list = new ArrayList();
      Stack stack = new Stack();
      FoldingInfo prev = null;
      char quote = 0;
      boolean escape = false;
     
      for(int i=0;i<source.length();i++){
        char c = source.charAt(i);
        // skip string
        if(quote!=0 && escape==true){
          escape = false;
        } else if((prev==null || !prev.getType().equals("comment")) && (c=='"' || c=='\'')){
          if(quote==0){
            quote = c;
          } else if(quote == c){
            quote = 0;
          }
        } else if(quote!=0 && (c=='\\')){
          escape = true;
        } else if(quote!=0 && (c=='\n' || c=='\r')){
          quote = 0;
        // start comment
        } else if(c=='/' && source.length() > i+1 && quote==0){
          if(source.charAt(i+1)=='*'){
            prev = new FoldingInfo(i,-1,"comment");
            stack.push(prev);
            i++;
          }
        // end comment
        } else if(c=='*' && source.length() > i+1 && !stack.isEmpty() && quote==0){
          if(source.charAt(i+1)=='/' && prev.getType().equals("comment")){
            FoldingInfo info = (FoldingInfo)stack.pop();
            if(doc.getLineOfOffset(info.getStart())!=doc.getLineOfOffset(i)){
              list.add(new FoldingInfo(info.getStart(), i+2 + FoldingInfo.countUpLineDelimiter(source, i+2), "comment"));
            }
            prev = stack.isEmpty() ? null : (FoldingInfo)stack.get(stack.size()-1);
            i++;
          }
        // open blace
        } else if(c=='{' && quote==0){
          if(prev==null || !prev.getType().equals("comment")){
            if(findFunction(source, i)){
              prev = new FoldingInfo(i, -1, "function");
            } else {
              prev = new FoldingInfo(i, -1, "blace");
            }
            stack.push(prev);
          }
        // close blace
        } else if(c=='}' && prev!=null && !prev.getType().equals("comment") && quote==0){
          FoldingInfo info = (FoldingInfo)stack.pop();
          if(info.getType().equals("function") && doc.getLineOfOffset(info.getStart())!=doc.getLineOfOffset(i)){
            list.add(new FoldingInfo(info.getStart(), i+2 + FoldingInfo.countUpLineDelimiter(source, i+2), "function"));
          }
          prev = stack.isEmpty() ? null : (FoldingInfo)stack.get(stack.size()-1);
        }
      }
     
View Full Code Here

      IDocument doc = getDocumentProvider().getDocument(getEditorInput());
      String source = doc.get();
     
      ArrayList<FoldingInfo> list = new ArrayList<FoldingInfo>();
      Stack<FoldingInfo> stack = new Stack<FoldingInfo>();
      FoldingInfo prev = null;
      char quote = 0;
      boolean escape = false;
     
      for(int i=0;i<source.length();i++){
        char c = source.charAt(i);
        // skip string
        if(quote!=0 && escape==true){
          escape = false;
        } else if((prev==null || !prev.getType().equals("comment")) && (c=='"' || c=='\'')){
          if(quote==0){
            quote = c;
          } else if(quote == c){
            quote = 0;
          }
        } else if(quote!=0 && (c=='\\')){
          escape = true;
        } else if(quote!=0 && (c=='\n' || c=='\r')){
          quote = 0;
        // start comment
        } else if(c=='/' && source.length() > i+1 && quote==0){
          if(source.charAt(i+1)=='*'){
            prev = new FoldingInfo(i,-1,"comment");
            stack.push(prev);
            i++;
          }
        // end comment
        } else if(c=='*' && source.length() > i+1 && !stack.isEmpty() && quote==0){
          if(source.charAt(i+1)=='/' && prev.getType().equals("comment")){
            FoldingInfo info = stack.pop();
            if(doc.getLineOfOffset(info.getStart())!=doc.getLineOfOffset(i)){
              list.add(new FoldingInfo(info.getStart(), i+2 + FoldingInfo.countUpLineDelimiter(source, i+2), "comment"));
            }
            prev = stack.isEmpty() ? null : (FoldingInfo)stack.get(stack.size()-1);
            i++;
          }
        // open blace
        } else if(c=='{' && quote==0){
          if(prev==null || !prev.getType().equals("comment")){
            if(findFunction(source, i)){
              prev = new FoldingInfo(i, -1, "function");
            } else {
              prev = new FoldingInfo(i, -1, "blace");
            }
            stack.push(prev);
          }
        // close blace
        } else if(c=='}' && prev!=null && !prev.getType().equals("comment") && quote==0){
          FoldingInfo info = stack.pop();
          if(info.getType().equals("function") && doc.getLineOfOffset(info.getStart())!=doc.getLineOfOffset(i)){
            list.add(new FoldingInfo(info.getStart(), i+2 + FoldingInfo.countUpLineDelimiter(source, i+2), "function"));
          }
          prev = stack.isEmpty() ? null : (FoldingInfo)stack.get(stack.size()-1);
        }
      }
     
View Full Code Here

          // end comment
        }
        else if (c == '*' && type == FOLDING_COMMENT && source.length() > i + 1) {
          if (source.charAt(i + 1) == '/') {
            if (doc.getLineOfOffset(start) != doc.getLineOfOffset(i)) {
              list.add(new FoldingInfo(start, i + 2 + FoldingInfo.countUpLineDelimiter(source, i + 2)));
            }
            if (startBackup != -1) {
              type = FOLDING_STYLE;
              start = startBackup;
            }
            else {
              type = FOLDING_NONE;
            }
            startBackup = -1;
            i++;
          }
          // start blace
        }
        else if (c == '{' && type == FOLDING_NONE) {
          if (type == FOLDING_COMMENT) {
            startBackup = start;
          }
          start = i;
          type = FOLDING_STYLE;
          // end blace
        }
        else if (type == FOLDING_STYLE && c == '}') {
          if (doc.getLineOfOffset(start) != doc.getLineOfOffset(i)) {
            list.add(new FoldingInfo(start, i + 1 + FoldingInfo.countUpLineDelimiter(source, i + 1)));
          }
          if (startBackup != -1) {
            type = FOLDING_COMMENT;
            start = startBackup;
          }
View Full Code Here

TOP

Related Classes of tk.eclipse.plugin.htmleditor.editors.FoldingInfo

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.