Beispiel #1
0
        /// <summary>
        /// Moves edit position to char position.
        /// </summary>
        /// <param name="sourceEditor">Source editor</param>
        /// <param name="editPos">Edit position</param>
        /// <returns></returns>
        public static OTACharPos EditPosToCharPos(IOTASourceEditor sourceEditor, OTAEditPos editPos)
        {
            IOTAEditView _EditView = GetEditView(sourceEditor);
            OTACharPos _CharPos = new OTACharPos();

            if (_EditView != null)
            {
                _EditView.ConvertPos(true, ref editPos, ref _CharPos);
            }

            return _CharPos;
        }
Beispiel #2
0
        /// <summary>
        /// Moves char position to edit position.
        /// </summary>
        /// <param name="sourceEditor">Source editor</param>
        /// <param name="charPos">Char position</param>
        /// <returns>Edit position.</returns>
        public static OTAEditPos CharPosToEditPos(IOTASourceEditor sourceEditor, OTACharPos charPos)
        {
            IOTAEditView _EditView = GetEditView(sourceEditor);
            OTAEditPos _EditPos = new OTAEditPos();

            if (_EditView != null)
            {
                _EditView.ConvertPos(false, ref _EditPos, ref charPos);
            }

            return _EditPos;
        }
Beispiel #3
0
        /// <summary>
        /// Selects text from position to position.
        /// </summary>
        /// <param name="sourceEditor">Source</param>
        /// <param name="startPos">Start position</param>
        /// <param name="endPos">End position</param>
        public static void SelectTextFromPosToPos(IOTASourceEditor sourceEditor, OTAEditPos startPos, OTAEditPos endPos)
        {
            if (sourceEditor != null)
            {
                if (sourceEditor.EditViewCount > 0)
                {
                    IOTAEditView _EditView = sourceEditor.GetEditView(0);

                    _EditView.CursorPos = startPos;

                    _EditView.Block.BeginBlock();
                    _EditView.Block.Style = OTABlockType.btNonInclusive;

                    _EditView.CursorPos = endPos;
                    _EditView.MoveViewToCursor();
                    _EditView.Block.EndBlock();
                }
            }
        }
Beispiel #4
0
        /// <summary>
        /// Moves edit position to buffer position.
        /// </summary>
        /// <param name="sourceEditor">Source editor</param>
        /// <param name="editPos">Edit position</param>
        /// <returns></returns>
        public static int EditPosToBufferPos(IOTASourceEditor sourceEditor, OTAEditPos editPos)
        {
            OTACharPos _CharPos = EditPosToCharPos(sourceEditor, editPos);

            return CharPosToBufferPos(sourceEditor, _CharPos);
        }
Beispiel #5
0
        /// <summary>
        /// Selects line.
        /// </summary>
        /// <param name="sourceEditor">Source editor</param>
        public static void SelectLine(IOTASourceEditor sourceEditor)
        {
            if (sourceEditor != null)
            {
                if (sourceEditor.EditViewCount > 0)
                {
                    IOTAEditView _EditView = sourceEditor.GetEditView(0);

                    OTAEditPos _EditPos = new OTAEditPos();

                    _EditPos.Line = _EditView.Position.Row;
                    _EditPos.Col = 1;
                    _EditView.CursorPos = _EditPos;
                    _EditView.Block.BeginBlock();
                    _EditView.Block.Style = OTABlockType.btNonInclusive;

                    if (_EditView.Position.MoveEOL())
                    {
                        _EditView.MoveViewToCursor();
                    }

                    _EditView.Block.EndBlock();
                }
            }
        }
Beispiel #6
0
        /// <summary>
        /// Goes to position.
        /// </summary>
        /// <param name="sourceEditor">Source editor</param>
        /// <param name="lineNumber">Line number</param>
        /// <param name="colNumber">column number</param>
        /// <remarks>After calling this, EditView.MoveViewToCursor() and
        ///        EditView.Paint() must be called to move the view.</remarks>
        public static void GoToPosition(IOTASourceEditor sourceEditor, int lineNumber, short colNumber)
        {
            if (sourceEditor != null)
            {
                IOTAEditView _EditView = GetEditView(sourceEditor);

                OTAEditPos _Pos = new OTAEditPos();
                _Pos.Col = colNumber;
                _Pos.Line = lineNumber;

                _EditView.CursorPos = _Pos;
            }
        }
Beispiel #7
0
        /// <summary>
        /// Gets current line.
        /// </summary>
        /// <param name="sourceEditor">Source editor</param>
        /// <returns>String.Empty if no.</returns>
        /// <remarks>
        /// <para>Spaces are kept.</para>
        /// </remarks>
        public static string GetCurrentLine(IOTASourceEditor sourceEditor)
        {
            string _Source = GetSourceEditorText(sourceEditor);

            if (_Source.Length == 0)
            {
                return String.Empty;
            }

            IOTAEditView _EditView = GetEditView(sourceEditor);
            OTAEditPos _OriginalPos = _EditView.CursorPos;
            try
            {
                _EditView.Buffer.EditPosition.MoveEOL();

                // Get the Begin of the Line
                OTAEditPos _BeginEditPos = new OTAEditPos();
                _BeginEditPos.Col = 1;
                _BeginEditPos.Line = _EditView.CursorPos.Line;

                // Get the End of the Line
                OTAEditPos _EndEditPos = new OTAEditPos();
                _EndEditPos.Col = _EditView.CursorPos.Col;
                _EndEditPos.Line = _EditView.CursorPos.Line;

                int _Begining = EditPosToBufferPos(sourceEditor, _BeginEditPos);
                int _End = EditPosToBufferPos(sourceEditor, _EndEditPos);

                return _Source.Substring(_Begining, _End - _Begining);
            }
            finally
            {
                _EditView.CursorPos = _OriginalPos;
            }
        }
Beispiel #8
0
        /// <summary>
        /// Verifies cursor is at end of line.
        /// </summary>
        /// <param name="sourceEditor">Source editor</param>
        /// <returns></returns>
        /// <remarks>This function is not correctly implemented.</remarks>
        public static bool CursorIsAtEndOfLine(IOTASourceEditor sourceEditor)
        {
            IOTAEditView _EditView = GetEditView(sourceEditor);
            OTAEditPos _OriginalPos = _EditView.CursorPos;
            bool result = false;
            try
            {
                _EditView.Buffer.EditPosition.MoveEOL();

                // Get the End of the Line
                OTAEditPos _EndEditPos = new OTAEditPos();
                _EndEditPos.Col = _EditView.CursorPos.Col;
                _EndEditPos.Line = _EditView.CursorPos.Line;

                result = (_EndEditPos.Col == _OriginalPos.Col);
            }
            finally
            {
                _EditView.CursorPos = _OriginalPos;
            }
            return result;
        }
Beispiel #9
0
        public static bool FindSelectionText(string id, string source, int lastPos, bool prev, out int pos)
        {
            IOTAEditView _EditView = GetCurrentEditView();
            OTAEditPos _EditPos = new OTAEditPos();
            _EditPos.Line = _EditView.Buffer.EditBlock.StartingRow;
            _EditPos.Col = (short)_EditView.Buffer.EditBlock.StartingColumn;

            int _StartPos = EditPosToBufferPos(GetCurrentSourceEditor(), _EditPos);

            _EditPos.Line = _EditView.Buffer.EditBlock.EndingRow;
            _EditPos.Col = (short)_EditView.Buffer.EditBlock.EndingColumn;

            //int _LastPos = EditPosToBufferPos(GetCurrentSourceEditor(), _EditPos);

            //int _Diff = lastPos - _StartPos;
            pos = -1;

            if (id.Length == 0)
            {
                return false;
            }

            id = id.ToUpperInvariant();

            while (Lextm.StringHelper.GoNext(source, ref _StartPos, prev))
            {
                if (Char.ToUpperInvariant(source[_StartPos]) == id[0])
                {
                    if (Lextm.StringHelper.IsStrCaseIns(source, _StartPos, id))
                    {
                        pos = _StartPos;
                        return true;
                    }
                }
            }

            return false;
        }