Package org.eclipse.jface.text.link

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


        String templateString= templateBuffer.getString();
        document.replace(start, end - start, templateString);
      }

      // translate positions
      LinkedModeModel model= new LinkedModeModel();
      TemplateVariable[] variables= templateBuffer.getVariables();
      boolean hasPositions= false;
      for (int i= 0; i != variables.length; i++) {
        TemplateVariable variable= variables[i];

        if (variable.isUnambiguous())
          continue;

        LinkedPositionGroup group= new LinkedPositionGroup();

        int[] offsets= variable.getOffsets();
        int length= variable.getLength();

        LinkedPosition first;
        {
          String[] values= variable.getValues();
          ICompletionProposal[] proposals= new ICompletionProposal[values.length];
          for (int j= 0; j < values.length; j++) {
            ensurePositionCategoryInstalled(document, model);
            Position pos= new Position(offsets[0] + start, length);
            document.addPosition(getCategory(), pos);
            proposals[j]= new PositionBasedCompletionProposal(values[j], pos, length);
          }
         
          if (proposals.length > 1)
            first= new ProposalPosition(document, offsets[0] + start, length, proposals);
          else
            first= new LinkedPosition(document, offsets[0] + start, length);
        }

        for (int j= 0; j != offsets.length; j++)
          if (j == 0)
            group.addPosition(first);
          else
            group.addPosition(new LinkedPosition(document, offsets[j] + start, length));

        model.addGroup(group);
        hasPositions= true;
      }

      if (hasPositions) {
        model.forceInstall();
        LinkedModeUI ui= new LinkedModeUI(model, viewer);
        ui.setExitPosition(viewer, getCaretOffset(templateBuffer) + start, 0, Integer.MAX_VALUE);
        ui.enter();

        fSelectedRegion= ui.getSelectedRegion();
View Full Code Here


      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

    QuickRenameRefactoring.enterLinkedMode(linkedGroup, cache, htmlViewer, wodViewer);
  }

  protected static void enterLinkedMode(LinkedPositionGroup linkedGroup, final WodParserCache cache, ITextViewer... textViewers) throws BadLocationException {
    if (!linkedGroup.isEmpty()) {
      LinkedModeModel linkedModeModel = new LinkedModeModel();
      linkedModeModel.addGroup(linkedGroup);
      linkedModeModel.forceInstall();

      //    JavaEditor editor = getJavaEditor();
      //    if (editor != null) {
      //      model.addLinkingListener(new EditorHighlightingSynchronizer(editor));
      //    }

      linkedModeModel.addLinkingListener(new ILinkedModeListener() {
        public void resume(LinkedModeModel model, int flags) {
          // DO NOTHING
        }

        public void suspend(LinkedModeModel model) {
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

            List<Integer> offsetsAndLens) throws BadLocationException {
        if (!goToLinkedMode) {
            return;
        }
        if (offsetsAndLens.size() > 0) {
            LinkedModeModel model = new LinkedModeModel();

            for (int i = 0; i < offsetsAndLens.size(); i++) {
                Integer offs = offsetsAndLens.get(i);
                i++;
                Integer len = offsetsAndLens.get(i);
                if (i == 1) {
                    firstParameterLen = len;
                }
                int location = offset + iPar + offs + 1;
                LinkedPositionGroup group = new LinkedPositionGroup();
                ProposalPosition proposalPosition = new ProposalPosition(doc, location, len, 0,
                        new ICompletionProposal[0]);
                group.addPosition(proposalPosition);
                model.addGroup(group);
            }

            model.forceInstall();

            final LinkedModeUI ui = new EditorLinkedModeUI(model, viewer);
            ui.setDoContextInfo(true); //set it to request the ctx info from the completion processor
            ui.setExitPosition(viewer, exitPos, 0, Integer.MAX_VALUE);
            Runnable r = new Runnable() {
View Full Code Here

            if (prefs.getAutoLink()) {
                LinkedPositionGroup group = new LinkedPositionGroup();
                group.addPosition(new LinkedPosition(doc, linkOffset, linkLen, LinkedPositionGroup.NO_STOP));

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

                if (viewer == null) {
                    return true; //don't actually do the link.
                }
View Full Code Here

            String lineDelimiter = document.getLineDelimiter(lineOfOffset);
            int lineDelimiterLen = lineDelimiter != null ? lineDelimiter.length() : 0;

            ISourceViewer viewer = sourceViewer;

            LinkedModeModel model = new LinkedModeModel();
            LinkedPositionGroup group = new LinkedPositionGroup();

            //the len-3 is because of the end of the string: " = " because the replacement string is
            //something like "xxx = "
            ProposalPosition proposalPosition = new ProposalPosition(document, fReplacementOffset,
                    fReplacementString.length() - 3, 0, new ICompletionProposal[0]);
            group.addPosition(proposalPosition);

            model.addGroup(group);
            model.forceInstall();

            final LinkedModeUI ui = new EditorLinkedModeUI(model, viewer);
            ui.setExitPosition(viewer, lineOffset + lineLength - lineDelimiterLen, 0, Integer.MAX_VALUE);
            Runnable r = new Runnable() {
                public void run() {
View Full Code Here

                        if (group.isEmpty()) {
                            return Status.OK_STATUS;
                        }

                        LinkedModeModel model = new LinkedModeModel();
                        model.addGroup(group);
                        if (model.tryInstall() && model.getTabStopSequence().size() > 0) {
                            final LinkedModeUI ui = new EditorLinkedModeUI(model, viewer);
                            Tuple<String, Integer> currToken = ps.getCurrToken();
                            ui.setCyclingMode(LinkedModeUI.CYCLE_ALWAYS);
                            ui.setExitPosition(viewer, currToken.o2 + currToken.o1.length(), 0, 0 /*ordered so that 0 is current pos*/);
                            ui.enter();
View Full Code Here

            fBracketLevelStack.push(level);

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

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

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

            // set up position tracking for our magic peers
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.