Package org.eclipse.jface.text.link

Examples of org.eclipse.jface.text.link.LinkedModeModel


      String[] tabGroups = tabStops.getSortedGroupKeys();
      TabStop firstTabStop = tabStops.getFirstTabStop();
     
      if (totalLinks > 1 || firstTabStop != null && firstTabStop.getStart() != firstTabStop.getEnd()) {
        ITextViewer viewer = EclipseEmmetHelper.getTextViewer(editor);
        LinkedModeModel model = new LinkedModeModel();
        int exitPos = -1;
       
        for (int i = 0; i < tabGroups.length; i++) {
          TabStopGroup tabGroup = tabStops.getTabStopGroup(tabGroups[i]);
          LinkedPositionGroup group = null;
         
          if (tabGroups[i].equals("carets") || tabGroups[i].equals("0")) {
            int caretCount = tabGroup.getTabStopList().size();
            for (int j = 0; j < caretCount; j++) {
              TabStop ts = tabGroup.getTabStopList().get(j);
              group = new LinkedPositionGroup();
              group.addPosition(new LinkedPosition(doc, start + ts.getStart(), ts.getLength()));
              model.addGroup(group);
              if (j == caretCount - 1) {
                exitPos = start + ts.getStart();
              }             
            }
          } else {
            group = new LinkedPositionGroup();
           
            for (int j = 0; j < tabGroup.getTabStopList().size(); j++) {
              TabStop ts = tabGroup.getTabStopList().get(j);
              group.addPosition(new LinkedPosition(doc, start + ts.getStart(), ts.getLength()));
            }
           
            model.addGroup(group);
          }
        }
       
        model.forceInstall();
        LinkedModeUI linkUI = new LinkedModeUI(model, viewer);
        if (exitPos != -1) {
          linkUI.setExitPosition(viewer, exitPos, 0, Integer.MAX_VALUE);
        }
       
View Full Code Here


        final LinkedPositionGroup group = new LinkedPositionGroup();
        group.addPosition(new LinkedPosition(document, offset + 1, 0,
                LinkedPositionGroup.NO_STOP));

        final LinkedModeModel model = new LinkedModeModel();
        model.addLinkingListener(this);
        model.addGroup(group);
        model.forceInstall();

        level.fOffset = offset;
        level.fLength = 2 + selLength;

        // set up position tracking for our magic peers
View Full Code Here

     */
    protected void setUpLinkedMode(final IDocument document, final char closingCharacter,
            final List<Point> offsetsAndLengths) {
        if (sourceViewer != null && !offsetsAndLengths.isEmpty()) {
            try {
                final LinkedModeModel model = new LinkedModeModel();
                int last = 0, i = 0;
                for (final Point offsetAndLength : offsetsAndLengths) {
                    final LinkedPositionGroup group = new LinkedPositionGroup();
                    group.addPosition(new LinkedPosition(document, offsetAndLength.x,
                            offsetAndLength.y, ++i));
                    model.addGroup(group);
                    final int l = offsetAndLength.x + offsetAndLength.y;
                    if (l > last) {
                        last = l;
                    }
                }
                model.forceInstall();

                final LinkedModeUI ui = new EditorLinkedModeUI(model, sourceViewer);
                // ui.setSimpleMode(true);
                ui.setExitPolicy(new ExitPolicy(closingCharacter, document));
                ui.setExitPosition(sourceViewer, last + 1, 0, LinkedPositionGroup.NO_STOP);
View Full Code Here

    final int length= selection.y;

    boolean paired = false;
    try {
      document.replace(offset, length, new String(chars));
      LinkedModeModel model = new LinkedModeModel();
      LinkedPositionGroup group = new LinkedPositionGroup();
      group.addPosition(new LinkedPosition(document, offset + 1, 0, LinkedPositionGroup.NO_STOP));
      model.addGroup(group);
      model.forceInstall();

      LinkedModeUI ui = new LinkedModeUI(model, viewer);
      ui.setCyclingMode(LinkedModeUI.CYCLE_NEVER);
      ui.setExitPosition(viewer, offset + 2, 0, Integer.MAX_VALUE);
      ui.setExitPolicy(getExitPolicy(mc, getEscapeChar(c), document));
View Full Code Here

    final int length = replacement.length();
    boolean inAttribute = false, hasGroup = false, inEndTag = false;
    int offset = 0;
    char attType = 0;
    int exitPosition = -1;
    LinkedModeModel model = new LinkedModeModel();

    try {
      for (int i = 0; i < length; i++) {
        final char c = replacement.charAt(i);
        switch (c) {
          case '=':
            break;
          case '\'':
          case '\"':
            if (!inAttribute) {
              offset = i;
              attType = c;
              inAttribute = true;
            }
            else {
              // Found matching quotes establishing an attribute value region
              if (attType == c && replacement.charAt(i - 1) != '\\') {
                inAttribute = false; // Record position length
                addPosition(model, document, getReplacementOffset() + offset + 1, i - offset - 1);
                hasGroup = true;
              }
            }
            break;
          case '/':
              if (!inAttribute) {
                inEndTag = i > 0 && replacement.charAt(i - 1) == '<';
              }
            break;
          case '>':
            if (!inAttribute) {
              if (i == length - 1) {
                exitPosition = getReplacementOffset() + i + 1;
                if (!inEndTag) { // Don't add a position within the end-tag
                  addPosition(model, document, getReplacementOffset() + i, 0); // position within start tag
                  hasGroup = true;
                }
              }
              else {
                addPosition(model, document, getReplacementOffset() + i, 0); // position within start tag
                addPosition(model, document, getReplacementOffset() + i + 1, 0); // position after start tag
                hasGroup = true;
              }
            }
            break;
        }
      }
      if (hasGroup) {
        model.forceInstall();
        final LinkedModeUI ui= new EditorLinkedModeUI(model, viewer);
        ui.setExitPosition(viewer, exitPosition < 0 ? getReplacementOffset() + getReplacementLength() + replacement.length() - 1 : exitPosition, 0, Integer.MAX_VALUE);
        ui.setCyclingMode(LinkedModeUI.CYCLE_WHEN_NO_PARENT);
        ui.setDoContextInfo(true);
        ui.enter();
View Full Code Here

      int index= length - 1;
      while (index > -1 && Character.isWhitespace(line.charAt(index)))
        index--;
      index++;
     
      LinkedModeModel model= LinkedModeModel.getModel(document, offset);
      if (model != null) {
        LinkedPosition linkedPosition= model.findPosition(new LinkedPosition(document, offset, 0));
        if (linkedPosition != null) {
          int linkedPositionEnd= linkedPosition.getOffset() + linkedPosition.getLength();
          int lineOffset;
          try {
            lineOffset= document.getLineInformationOfOffset(offset).getOffset();
View Full Code Here

    protected int getLineStartPosition(final IDocument document, final String line, final int length, final int offset) {
      int index= 0;
      while (index < length && Character.isWhitespace(line.charAt(index)))
        index++;
     
      LinkedModeModel model= LinkedModeModel.getModel(document, offset);
      if (model != null) {
        LinkedPosition linkedPosition= model.findPosition(new LinkedPosition(document, offset, 0));
        if (linkedPosition != null) {
          int linkedPositionOffset= linkedPosition.getOffset();
          int lineOffset;
          try {
            lineOffset= document.getLineInformationOfOffset(offset).getOffset();
View Full Code Here

    super.apply(viewer, trigger, stateMask, offset);

    try {
      if (positions != null) {
        LinkedModeModel model = new LinkedModeModel();
 
        for (int i = 0; i < positions.length; i++) {
          LinkedPositionGroup group = new LinkedPositionGroup();
          Position position = positions[i];
          group.addPosition(new LinkedPosition(viewer.getDocument(), position.getOffset(), position.getLength(), i));
          model.addGroup(group);
        }
        model.forceInstall();

        LinkedModeUI ui = new EditorLinkedModeUI(model, viewer);
        ui.setExitPosition(viewer, getReplacementOffset() + getReplacementString().length(), 0, Integer.MAX_VALUE);
        ui.setExitPolicy(new ExitPolicy(')', viewer.getDocument()));
        ui.setCyclingMode(LinkedModeUI.CYCLE_WHEN_NO_PARENT);
View Full Code Here

        group.addPosition(new LinkedPosition(document, end.offset + 2, length, 1)); // offset by 2 for </
     
      if(viewer instanceof ITextViewerExtension)
        ((ITextViewerExtension) viewer).setRedraw(true);

      LinkedModeModel linkedModeModel = new LinkedModeModel();
      linkedModeModel.addGroup(group);
      linkedModeModel.forceInstall();
 
      LinkedModeUI ui = new EditorLinkedModeUI(linkedModeModel, viewer);
      ui.setExitPosition(viewer, start.offset, 0, LinkedPositionGroup.NO_STOP);
      ui.enter();
 
View Full Code Here

        // IRewriteTarget.beginCompoundChange()
        // which disables redraw in ITextViewer. Workaround for now.
        if(viewer instanceof ITextViewerExtension)
          ((ITextViewerExtension) viewer).setRedraw(true);

      LinkedModeModel linkedModeModel = new LinkedModeModel();
      linkedModeModel.addGroup(group);
      linkedModeModel.forceInstall();

      LinkedModeUI ui = new EditorLinkedModeUI(linkedModeModel, viewer);
      ui.setExitPosition(viewer, offset, 0, LinkedPositionGroup.NO_STOP);
      ui.enter();
View Full Code Here

TOP

Related Classes of org.eclipse.jface.text.link.LinkedModeModel

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.