예제 #1
0
        void UpdateCurrentLineMarker(bool moveCaret)
        {
            if (currentDebugLineMarker != null)
            {
                editor.RemoveMarker(currentDebugLineMarker);
                currentDebugLineMarker = null;
            }
            StackFrame sf = DebuggingService.CurrentFrame;
            int        line;

            if (addressLines.TryGetValue(GetAddrId(sf.Address, sf.AddressSpace), out line))
            {
                var docLine = editor.GetLine(line);
                currentDebugLineMarker = TextMarkerFactory.CreateCurrentDebugLineTextMarker(editor, docLine.Offset, docLine.Length);
                editor.AddMarker(line, currentDebugLineMarker);
                if (moveCaret)
                {
                    editor.CaretLine = line;
                    GLib.Timeout.Add(100, delegate {
                        editor.CenterToCaret();
                        return(false);
                    });
                }
            }
        }
예제 #2
0
        public void Update()
        {
            autoRefill = false;
            if (currentDebugLineMarker != null)
            {
                editor.RemoveMarker(currentDebugLineMarker);
                currentDebugLineMarker = null;
            }

            if (DebuggingService.CurrentFrame == null)
            {
                sw.Sensitive = false;
                return;
            }

            sw.Sensitive = true;
            var sf = DebuggingService.CurrentFrame;

            if (!string.IsNullOrEmpty(sf.SourceLocation.FileName) && File.Exists(sf.SourceLocation.FileName))
            {
                FillWithSource();
            }
            else
            {
                Fill();
            }
        }
예제 #3
0
        public void Update()
        {
            autoRefill = false;
            if (currentDebugLineMarker != null)
            {
                editor.RemoveMarker(currentDebugLineMarker);
                currentDebugLineMarker = null;
            }

            if (DebuggingService.CurrentFrame == null)
            {
                if (messageOverlayContent != null)
                {
                    editor.RemoveOverlay(messageOverlayContent);
                    messageOverlayContent = null;
                }
                sw.Sensitive = false;
                return;
            }

            sw.Sensitive = true;
            var sf = DebuggingService.CurrentFrame;

            if (!string.IsNullOrWhiteSpace(sf.SourceLocation.FileName) && sf.SourceLocation.Line != -1 && sf.SourceLocation.FileHash != null)
            {
                ShowLoadSourceFile(sf);
            }
            else
            {
                if (messageOverlayContent != null)
                {
                    editor.RemoveOverlay(messageOverlayContent);
                    messageOverlayContent = null;
                }
            }
            if (!string.IsNullOrEmpty(sf.SourceLocation.FileName) && File.Exists(sf.SourceLocation.FileName))
            {
                FillWithSource();
            }
            else
            {
                Fill();
            }
        }
예제 #4
0
		void UpdateCurrentLineMarker (bool moveCaret)
		{
			if (currentDebugLineMarker != null) {
				editor.RemoveMarker (currentDebugLineMarker);
				currentDebugLineMarker = null;
			}
			StackFrame sf = DebuggingService.CurrentFrame;
			int line;
			if (addressLines.TryGetValue (GetAddrId (sf.Address, sf.AddressSpace), out line)) {
				var docLine = editor.GetLine (line);
				currentDebugLineMarker = TextMarkerFactory.CreateCurrentDebugLineTextMarker (editor, docLine.Offset, docLine.Length);
				editor.AddMarker (line, currentDebugLineMarker);
				if (moveCaret) {
					editor.CaretLine = line;
					GLib.Timeout.Add (100, delegate {
						editor.CenterToCaret ();
						return false;
					});
				}
			}
		}
예제 #5
0
		public void Update ()
		{
			autoRefill = false;
			if (currentDebugLineMarker != null) {
				editor.RemoveMarker (currentDebugLineMarker);
				currentDebugLineMarker = null;
			}
			
			if (DebuggingService.CurrentFrame == null) {
				if (messageOverlayContent != null) {
					editor.RemoveOverlay (messageOverlayContent);
					messageOverlayContent = null;
				}
				sw.Sensitive = false;
				return;
			}
			
			sw.Sensitive = true;
			var sf = DebuggingService.CurrentFrame;
			if (!string.IsNullOrWhiteSpace (sf.SourceLocation.FileName) && sf.SourceLocation.Line != -1 && sf.SourceLocation.FileHash != null) {
				ShowLoadSourceFile (sf);
			} else {
				if (messageOverlayContent != null) {
					editor.RemoveOverlay (messageOverlayContent);
					messageOverlayContent = null;
				}
			}
			if (!string.IsNullOrEmpty (sf.SourceLocation.FileName) && File.Exists (sf.SourceLocation.FileName))
				FillWithSource ();
			else
				Fill ();
		}