Example #1
0
        /// <summary>
        /// Moves the cursor to the next marker
        /// </summary>
        public static void NextMarker(ScintillaControl sci, Int32 marker, Int32 line)
        {
            Int32 next = 0;
            Int32 lineMask = sci.MarkerGet(line);
            if ((lineMask & GetMarkerMask(marker)) != 0)
            {
                next = sci.MarkerNext(line + 1, GetMarkerMask(marker));
                if (next != -1)
                {
                    sci.EnsureVisibleEnforcePolicy(next);
                    sci.GotoLineIndent(next);
                }
                else
                {
                    next = sci.MarkerNext(0, GetMarkerMask(marker));
                    if (next != -1)
                    {

                        sci.EnsureVisibleEnforcePolicy(next);
                        sci.GotoLineIndent(next);
                    }
                }
            }
            else
            {
                next = sci.MarkerNext(line, GetMarkerMask(marker));
                if (next != -1)
                {
                    sci.EnsureVisibleEnforcePolicy(next);
                    sci.GotoLineIndent(next);
                }
                else
                {
                    next = sci.MarkerNext(0, GetMarkerMask(marker));
                    if (next != -1)
                    {
                        sci.EnsureVisibleEnforcePolicy(next);
                        sci.GotoLineIndent(next);
                    }
                }
            }
        }
Example #2
0
 /// <summary>
 /// Move the document position
 /// </summary>
 private void MoveToPosition(ScintillaControl sci, Int32 position)
 {
     try
     {
         position = sci.MBSafePosition(position); // scintilla indexes are in 8bits
         Int32 line = sci.LineFromPosition(position);
         sci.EnsureVisibleEnforcePolicy(line);
         sci.GotoPos(position);
         sci.SetSel(position, sci.LineEndPosition(line));
         sci.Focus();
     }
     catch
     {
         String message = TextHelper.GetString("Info.InvalidItem");
         ErrorManager.ShowInfo(message);
         this.RemoveInvalidItems();
         this.RefreshProject();
     }
 }
Example #3
0
 /// <summary>
 /// Moves the cursor to the previous marker
 /// </summary>
 public static void PreviousMarker(ScintillaControl sci, Int32 marker, Int32 line)
 {
     Int32 prev = 0; Int32 count = 0;
     Int32 lineMask = sci.MarkerGet(line);
     if ((lineMask & GetMarkerMask(marker)) != 0)
     {
         prev = sci.MarkerPrevious(line - 1, GetMarkerMask(marker));
         if (prev != -1)
         {
             sci.EnsureVisibleEnforcePolicy(prev);
             sci.GotoLineIndent(prev);
         }
         else
         {
             count = sci.LineCount;
             prev = sci.MarkerPrevious(count, GetMarkerMask(marker));
             if (prev != -1)
             {
                 sci.EnsureVisibleEnforcePolicy(prev);
                 sci.GotoLineIndent(prev);
             }
         }
     }
     else
     {
         prev = sci.MarkerPrevious(line, GetMarkerMask(marker));
         if (prev != -1)
         {
             sci.EnsureVisibleEnforcePolicy(prev);
             sci.GotoLineIndent(prev);
         }
         else
         {
             count = sci.LineCount;
             prev = sci.MarkerPrevious(count, GetMarkerMask(marker));
             if (prev != -1)
             {
                 sci.EnsureVisibleEnforcePolicy(prev);
                 sci.GotoLineIndent(prev);
             }
         }
     }
 }
 /// <summary>
 /// Selects a search match
 /// </summary>
 public static void SelectMatch(ScintillaControl sci, SearchMatch match)
 {
     Int32 start = sci.MBSafePosition(match.Index); // wchar to byte position
     Int32 end = start + sci.MBSafeTextLength(match.Value); // wchar to byte text length
     Int32 line = sci.LineFromPosition(start);
     sci.EnsureVisibleEnforcePolicy(line);
     sci.SetSel(start, end);
 }
Example #5
0
 /// <summary>
 /// Goes to the match and ensures that correct fold is opened
 /// </summary>
 private void SetSelAndFocus(ScintillaControl sci, Int32 line, Int32 startPosition, Int32 endPosition)
 {
     sci.SetSel(startPosition, endPosition);
     sci.EnsureVisibleEnforcePolicy(line);
 }