Пример #1
0
        bool GoTo(IFileTab tab, MethodDef method, uint?ilOffset, object @ref)
        {
            if (method == null || ilOffset == null)
            {
                return(false);
            }
            var uiContext = tab.TryGetTextEditorUIContext();

            if (uiContext == null)
            {
                return(false);
            }
            var cm      = uiContext.GetCodeMappings();
            var mapping = cm.Find(method, ilOffset.Value);

            if (mapping == null)
            {
                return(false);
            }

            var location = mapping.StartPosition;
            var loc      = FindLocation(uiContext.GetCodeReferences(location.Line, location.Column), mapping.EndPosition, @ref);

            if (loc == null)
            {
                loc = new TextEditorLocation(location.Line, location.Column);
            }

            uiContext.ScrollAndMoveCaretTo(loc.Value.Line, loc.Value.Column);
            return(true);
        }
Пример #2
0
 static int Compare(TextEditorLocation a, TextPosition b)
 {
     if (a.Line > b.Line)
     {
         return(1);
     }
     if (a.Line == b.Line)
     {
         return(a.Column.CompareTo(b.Column));
     }
     return(-1);
 }
Пример #3
0
        private void TextEditor_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog
            {
                InitialDirectory = Form1.TextEditorLoc != "" ? Path.GetDirectoryName(Form1.TextEditorLoc) : "C:\\",
                Filter           = "All files (*.exe)|*.*",
                FilterIndex      = 1,
                RestoreDirectory = true,
                FileName         = Path.GetFileName(Form1.TextEditorLoc)
            };
            DialogResult result = openFileDialog.ShowDialog(); // Show the dialog.

            if (result == DialogResult.OK)                     // Test result.
            {
                TextEditorLocation.Items.Clear();
                TextEditorLocation.Items.Add(openFileDialog.FileName);
                TextEditorLocation.Hide();
                TextEditorLocation.Show();
                TextEditorLocation.Text = openFileDialog.FileName;
                TextEditorLocation.Update();
                Application.DoEvents();
            }
        }
Пример #4
0
		static int Compare(TextEditorLocation a, TextPosition b) {
			if (a.Line > b.Line)
				return 1;
			if (a.Line == b.Line)
				return a.Column.CompareTo(b.Column);
			return -1;
		}
Пример #5
0
		bool GoTo(IFileTab tab, MethodDef method, uint? ilOffset, object @ref) {
			if (method == null || ilOffset == null)
				return false;
			var uiContext = tab.TryGetTextEditorUIContext();
			if (uiContext == null)
				return false;
			var cm = uiContext.GetCodeMappings();
			var mapping = cm.Find(method, ilOffset.Value);
			if (mapping == null)
				return false;

			var location = mapping.StartPosition;
			var loc = FindLocation(uiContext.GetCodeReferences(location.Line, location.Column), mapping.EndPosition, @ref);
			if (loc == null)
				loc = new TextEditorLocation(location.Line, location.Column);

			uiContext.ScrollAndMoveCaretTo(loc.Value.Line, loc.Value.Column);
			return true;
		}