Coder Social home page Coder Social logo

fseye's Introduction

  • πŸ‘‹ Hi, I’m @xxtbg
  • πŸ‘€ I’m interested in ...
  • 🌱 I’m currently learning ...
  • πŸ’žοΈ I’m looking to collaborate on ...
  • πŸ“« How to reach me ...

fseye's People

fseye's Issues

Create plugin architecture and manager

Ideas:

1) Provide an interface to implement which accepts an FsEye WatchModel instance 
and returns a Control or Form instance which can be shown by FsEye. Perhaps the 
plugin itself will be held by FsEye as a singleton and have configuration 
properties like context menu text (I am envisioning plugins being invoked via 
right-click context menu on a watch node) and modal vs. non-modal display.

2) Have a plugin manager where you can enable or disable plugins. Plugins can 
be enabled by default and picked up by FsEye by putting them in a "plugins" 
directory relative to the FsEye dll (make sure to recursively traverse 
sub-directories in case plugin developers want to deploy multiple files 
together).

Original issue reported on code.google.com by [email protected] on 11 Jun 2012 at 5:39

Create "View PropertyGrid" right-click context menu action

See http://fssnip.net/cE for the idea. we can put the PropertyGrid in a form 
and make it popup (though we probably don't want it to be modal). Consider 
things like refreshing FsEye tree view node refreshes property grid.

The neat thing about the PropertyGrid control is that it allows to you change 
the value of some known property types.

It would be neat if we could tital the PropertyGrid window with the path taken 
from the FsEye tree view hierarchy, indicating private member access with '?'. 
e.g. x.Bla.Foo?Foo2?Foo3 

Perhaps implement this as a plugin (issue 25).

Original issue reported on code.google.com by [email protected] on 11 Jun 2012 at 5:44

mono bug needs work-around: sending watch to PropertyGrid causes exception if first use of a plugin

What steps will reproduce the problem?

On mono only (verified on OS X, mono 3.4.x):

1. In fresh FSI session with FsEye loaded, create a binding like [1;2;3]
2. Right-click the [1;2;3] binding in FsEye and choose to send it to the 
PropertyGrid plugin (must be use of a plugin)
3. FsEye generates an Exception in the FSI output originating from the 
PropertyGrid WinForms control

What is the expected output? What do you see instead?

No exception should occur, but we get the following:

System.ArgumentOutOfRangeException: Value '-1' must be greater than or equal to 
0.
Parameter name: LargeChange
  at System.Windows.Forms.ScrollBar.set_LargeChange (Int32 value) [0x00000] in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.ScrollBar:set_LargeChange (int)
  at System.Windows.Forms.PropertyGridInternal.PropertyGridView.UpdateScrollBar () [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.PropertyGridInternal.PropertyGridView.UpdateView () [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.PropertyGridInternal.PropertyGridView.OnResize (System.EventArgs e) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.OnSizeChanged (System.EventArgs e) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.UpdateBounds (Int32 x, Int32 y, Int32 width, Int32 height, Int32 clientWidth, Int32 clientHeight) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.UpdateBounds (Int32 x, Int32 y, Int32 width, Int32 height) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.SetBoundsCoreInternal (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.SetBoundsCore (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.SetBoundsInternal (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.SetBounds (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.set_Height (Int32 value) [0x00000] in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control:set_Height (int)
  at System.Windows.Forms.PropertyGrid+BorderHelperControl.OnSizeChanged (System.EventArgs e) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.UpdateBounds (Int32 x, Int32 y, Int32 width, Int32 height, Int32 clientWidth, Int32 clientHeight) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.UpdateBounds (Int32 x, Int32 y, Int32 width, Int32 height) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.SetBoundsCoreInternal (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.SetBoundsCore (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.SetBoundsInternal (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) [0x00000] in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control:SetBoundsInternal (int,int,int,int,System.Windows.Forms.BoundsSpecified)
  at System.Windows.Forms.Layout.DefaultLayout.LayoutDockedChildren (System.Windows.Forms.Control parent, System.Windows.Forms.Control[] controls) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Layout.DefaultLayout.Layout (System.Object container, System.Windows.Forms.LayoutEventArgs args) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.OnLayout (System.Windows.Forms.LayoutEventArgs levent) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.ScrollableControl.OnLayout (System.Windows.Forms.LayoutEventArgs levent) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.ContainerControl.OnLayout (System.Windows.Forms.LayoutEventArgs e) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.PerformLayout (System.Windows.Forms.Control affectedControl, System.String affectedProperty) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.OnResizeInternal (System.EventArgs e) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.OnResize (System.EventArgs e) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.PropertyGrid.OnResize (System.EventArgs e) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.OnSizeChanged (System.EventArgs e) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.UpdateBounds (Int32 x, Int32 y, Int32 width, Int32 height, Int32 clientWidth, Int32 clientHeight) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.UpdateBounds (Int32 x, Int32 y, Int32 width, Int32 height) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.SetBoundsCoreInternal (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.SetBoundsCore (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.SetBoundsInternal (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) [0x00000] in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control:SetBoundsInternal (int,int,int,int,System.Windows.Forms.BoundsSpecified)
  at System.Windows.Forms.Layout.DefaultLayout.LayoutDockedChildren (System.Windows.Forms.Control parent, System.Windows.Forms.Control[] controls) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Layout.DefaultLayout.Layout (System.Object container, System.Windows.Forms.LayoutEventArgs args) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.OnLayout (System.Windows.Forms.LayoutEventArgs levent) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.ScrollableControl.OnLayout (System.Windows.Forms.LayoutEventArgs levent) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.PerformLayout (System.Windows.Forms.Control affectedControl, System.String affectedProperty) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.OnResizeInternal (System.EventArgs e) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.OnResize (System.EventArgs e) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Panel.OnResize (System.EventArgs eventargs) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.OnSizeChanged (System.EventArgs e) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.UpdateBounds (Int32 x, Int32 y, Int32 width, Int32 height, Int32 clientWidth, Int32 clientHeight) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.UpdateBounds (Int32 x, Int32 y, Int32 width, Int32 height) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.SetBoundsCoreInternal (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.SetBoundsCore (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.SetBoundsInternal (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) [0x00000] in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control:SetBoundsInternal (int,int,int,int,System.Windows.Forms.BoundsSpecified)
  at System.Windows.Forms.Layout.DefaultLayout.LayoutDockedChildren (System.Windows.Forms.Control parent, System.Windows.Forms.Control[] controls) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Layout.DefaultLayout.Layout (System.Object container, System.Windows.Forms.LayoutEventArgs args) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.OnLayout (System.Windows.Forms.LayoutEventArgs levent) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.ScrollableControl.OnLayout (System.Windows.Forms.LayoutEventArgs levent) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.PerformLayout (System.Windows.Forms.Control affectedControl, System.String affectedProperty) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.OnResizeInternal (System.EventArgs e) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.OnResize (System.EventArgs e) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Panel.OnResize (System.EventArgs eventargs) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.OnSizeChanged (System.EventArgs e) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.UpdateBounds (Int32 x, Int32 y, Int32 width, Int32 height, Int32 clientWidth, Int32 clientHeight) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.UpdateBounds (Int32 x, Int32 y, Int32 width, Int32 height) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.SetBoundsCoreInternal (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.SetBoundsCore (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.TabPage.SetBoundsCore (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.SetBoundsInternal (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.SetBounds (Int32 x, Int32 y, Int32 width, Int32 height, BoundsSpecified specified) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.set_Bounds (Rectangle value) [0x00000] in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control:set_Bounds (System.Drawing.Rectangle)
  at System.Windows.Forms.TabControl.ResizeTabPages () [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.TabControl.Redraw () [0x00000] in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.TabControl:Redraw ()
  at System.Windows.Forms.TabControl+ControlCollection.Add (System.Windows.Forms.Control value) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.TabControl+TabPageCollection.Add (System.Windows.Forms.TabPage value) [0x00000] in <filename unknown>:0 
  at <StartupCode$FsEye>[email protected] (Swensen.FsEye.ManagedWatchViewer mwv) [0x00000] in <filename unknown>:0 
  at Microsoft.FSharp.Control.CommonExtensions+SubscribeToObservable@2028[Swensen.FsEye.ManagedWatchViewer].System-IObserver`1-OnNext (Swensen.FsEye.ManagedWatchViewer value) [0x00000] in <filename unknown>:0 
  at Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers+h@740[Swensen.FsEye.ManagedWatchViewer].Invoke (System.Object _arg1, Swensen.FsEye.ManagedWatchViewer args) [0x00000] in <filename unknown>:0 
  at Microsoft.FSharp.Core.FSharpFunc`2[System.Object,Swensen.FsEye.ManagedWatchViewer].InvokeFast[Unit] (Microsoft.FSharp.Core.FSharpFunc`2 func, System.Object arg1, Swensen.FsEye.ManagedWatchViewer arg2) [0x00000] in <filename unknown>:0 
  at <StartupCode$FsEye>[email protected] (System.Object sender, Swensen.FsEye.ManagedWatchViewer args) [0x00000] in <filename unknown>:0 
  at Microsoft.FSharp.Control.FSharpEvent`1[Swensen.FsEye.ManagedWatchViewer].Trigger (Swensen.FsEye.ManagedWatchViewer arg) [0x00000] in <filename unknown>:0 
  at Swensen.FsEye.PluginManager.SendTo (Swensen.FsEye.ManagedPlugin managedPlugin, System.String label, System.Object value, System.Type valueTy) [0x00000] in <filename unknown>:0 
  at <StartupCode$FsEye>[email protected] (System.EventArgs _arg4) [0x00000] in <filename unknown>:0 
  at Microsoft.FSharp.Control.CommonExtensions+SubscribeToObservable@2028[System.EventArgs].System-IObserver`1-OnNext (System.EventArgs value) [0x00000] in <filename unknown>:0 
  at Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers+h@740[System.EventArgs].Invoke (System.Object _arg1, System.EventArgs args) [0x00000] in <filename unknown>:0 
  at Microsoft.FSharp.Core.FSharpFunc`2[System.Object,System.EventArgs].InvokeFast[Unit] (Microsoft.FSharp.Core.FSharpFunc`2 func, System.Object arg1, System.EventArgs arg2) [0x00000] in <filename unknown>:0 
  at <StartupCode$FsEye>[email protected] (System.Object sender, System.EventArgs e) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.MenuItem.OnClick (System.EventArgs e) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.MenuItem.PerformClick () [0x00000] in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.Windows.Forms.MenuItem:PerformClick ()
  at System.Windows.Forms.MenuTracker.OnMouseUp (System.Windows.Forms.MouseEventArgs args) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.ProcessActiveTracker (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.WmLButtonUp (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.ScrollableControl.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.ContainerControl.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Form.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 
  at System.Windows.Forms.NativeWindow.WndProc (IntPtr hWnd, Msg msg, IntPtr wParam, IntPtr lParam) [0x00000] in <filename unknown>:0 
Stopped due to error
Microsoft.FSharp.Compiler.ErrorLogger+StopProcessing: Exception of type 
'Microsoft.FSharp.Compiler.ErrorLogger+StopProcessing' was thrown.
  at Microsoft.FSharp.Compiler.Interactive.Shell+ErrorLoggerThatStopsOnFirstError.AbortOnError () [0x00000] in <filename unknown>:0 
  at Microsoft.FSharp.Compiler.Interactive.Shell+threadException@2457-1[System.Exception].Invoke (Microsoft.FSharp.Core.Unit unitVar0) [0x00000] in <filename unknown>:0 

Please use labels and text to provide additional information.

Seems related to a supposedly fixed WinForms bug / regression in mono: 
https://bugzilla.novell.com/show_bug.cgi?id=643366

Original issue reported on code.google.com by [email protected] on 23 Jun 2014 at 12:42

Performance slow when objects that require complex printing are submitted to FSI

Discussion from [Comments]:

Paul: 

Performance seems slow. I'm not sure if I have a problem, but if I start a new 
FSI, and type let z = [1..100];; it can take 5 to 10 seconds before the watch 
appears and FSI returns a prompt? ... Just to add to my previous comment. 
Whereas typing "let z = [1..100];;" can take 10 sec to return if I type 
"eye.Watch("x",[1..100]);;" this always returns instantly.

Stephen:

Regarding performance this is a known issue and is due to the way FsEye? 
discovers all FSI session variables and is notified of new session variables. 
FSI does not expose a rich API for interacting with it. In order to discover 
all the variables in the FSI session we need to use reflection to scan all the 
FSI related dynamic assemblies. While that in itself takes some serious CPU 
cycles, it's sub-second in one pass. However, the only way I am aware of being 
notified that a new variable has been submitted to the FSI session is by adding 
a PrintTransformer? which is notified every-time time an object is printed in 
FSI. Now, for simple objects this is not a problem, since the print transformer 
event is only fired once. However for composite objects like a list of integers 
this can be can harm performance since, for example, [1..100] will trigger the 
event 100 times! I will continue to look into ways to avoid the performance 
issues that arise from this hack. But in the mean-time there is one thing you 
can do: you can tell FSI to limit the number of elements shown in lists using 
fsi.PrintLength, e.g. fsi.PrintLength <- 5 would tell FSI to only print the 
first 5 elements of lists which should lead to a dramatic performance 
improvement since then the print transformer event will only fire 5 times 
instead of 100!

Original issue reported on code.google.com by [email protected] on 8 Aug 2011 at 7:27

IEnumerator valued Watch.Children may only be enumerated once

This is not an issue with the FsEye GUI, only the Watch API.

This problem is caused by using reflection to get the value of IEnumerator 
watches outside of the sequence expression which lazily iterators over the 
enumerator: we need to cache our results.


Original issue reported on code.google.com by [email protected] on 2 Aug 2011 at 8:02

IWatchViewer.Watch signature needs to be changed slightly

The IWatchViewer.Watch signature needs to be changed from

(string * 'a * Type) -> unit 

to

(string * obj * Type) -> unit

since the current signature makes it difficult for plugin authors to 
dynamically cast the value, of generic type 'a, to a more specific type. As a 
work-around, first statically cast the value to obj, and then dynamically cast 
that to the desired type.

This issue affects FsEeye 2.0.0-beta1.

Original issue reported on code.google.com by [email protected] on 21 Jul 2012 at 3:15

Add UI dialog for persistent management of settings

i.e. settings for whether or not the FSI Listener is turned on. These should be 
persisted with some sort of settings file. The settings file should be 
generated on the fly if not present, this will allow easier in-place update of 
new versions of FsEye without overwriting existing settings files (i.e. FsEye 
should not be distributed with a pre-made settings file).

Original issue reported on code.google.com by [email protected] on 13 Apr 2012 at 7:14

FsEye Plugin Loading Error when loading plugins marked as from "unsafe" internet location (affects included plugins)

Error:

---------------------------
FsEye Plugin Loading Error
---------------------------
An attempt was made to load an assembly from a network location which would 
have caused the assembly to be sandboxed in previous versions of the .NET 
Framework. This release of the .NET Framework does not enable CAS policy by 
default, so this load may be dangerous. If this load is not intended to sandbox 
the assembly, please enable the loadFromRemoteSources switch. See 
http://go.microsoft.com/fwlink/?LinkId=155569 for more information.

Affects: FsEye 2.0.0 beta1-3

Workaround: navigate to the fseye plugins fold, and for each plugin .dll 
right-click -> Properties -> Unblock -> OK.

Solution: use 
http://msdn.microsoft.com/en-us/library/system.reflection.assembly.unsafeloadfro
m.aspx to load plugins.

Original issue reported on code.google.com by [email protected] on 10 Aug 2012 at 12:22

Include FsEye.dll dir in plugin search

Currently, the subdirectory "plugins" relative to FsEye.dll is the sole search 
location for plugins. But this can make it difficult for plugin authors to 
easily test plugins during development. Although we will still prefer "plugins" 
as the plugin deployment location, we will also include the root directory 
which FsEye.dll exists in as well.

We also consider expanding the search directory to all subdirectories, 
recursively, but will hold off for now.

Affects FsEye 2.0.0 Beta 2

Original issue reported on code.google.com by [email protected] on 31 Jul 2012 at 4:26

Bug: exception loading nodes for Ole object

What steps will reproduce the problem?
1. submit let browser = new System.Forms.WebBrowser();; to fsi
2. expand "browser" root node in fseye

What is the expected output? What do you see instead?

Expect normal behavior, but instead get prompted with an unhandled exception 
dialog: 

System.Threading.ThreadStateException: Current thread must be set to single 
thread apartment (STA) mode before OLE calls can be made. Ensure that your Main 
function has STAThreadAttribute marked on it.
   at System.Windows.Forms.WebBrowserBase.OnHandleCreated(EventArgs e)
   at System.Windows.Forms.Control.WmCreate(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.WebBrowserBase.WndProc(Message& m)
   at System.Windows.Forms.WebBrowser.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Please use labels and text to provide additional information.

Nodes are loaded asynchronously and in parallel using F#'s async feature. i.e. 
nodes are being loaded on threads from a thread pool which cannot be set to 
STAThreadAttribute 
(http://social.msdn.microsoft.com/forums/en-US/Vsexpressvb/thread/a23a47f8-efd2-
4117-b107-6757254d8e27). However, we may be able to test whether specific 
values are IOleObjects 
(http://msdn.microsoft.com/en-us/library/windows/desktop/dd542709(v=vs.85).aspx)
 and create special STAThreads for those rarer cases (continue using the thread 
pool for most cases).

Original issue reported on code.google.com by [email protected] on 9 Apr 2012 at 6:53

Add support for Mono

Consider officially supporting FsEye use within Mono. There are currently some 
know issues with the .NET 4.0 builds. 

We have an experimental branch at 
http://fseye.googlecode.com/svn/branches/mono/ which uses MonoDevelop 3.0.3.2, 
Mono 2.10.8.1 (Debian 2.10.8.1-5ubuntu1), and a version of F# 3.0 built from 
the github sources, but what we really want is to make our .NET 4.0 build 
compatible with Mono rather than maintaining separate builds and tools.

So far, with some minor tweaks we have seen it run well except for an 
occasional crash when using the new FsEye 2.0 beta 4 "Send To" plugin feature. 
To use within the F# 3.0 open source edition of FSI, make sure to start fsharpi 
with the --gui+ option so that the WinForms? event loop is enabled.

Original issue reported on code.google.com by [email protected] on 24 Nov 2012 at 7:40

Should automatically reset Eye when the underlying WatchForm becomes disposed due to an exception

While the OnClose is hooked to prevent disposal of the underlying WatchForm 
instance of an instance when the "X" close button is clicked (i.e. it hides but 
does not dispose), if an exception should happen to occur it will cause the 
WatchForm to dispose and subsequent attempts to Show the Eye to fail. Eye 
should checked whether its WatchForm has disposed and re-initialize it when so.

Original issue reported on code.google.com by [email protected] on 16 May 2011 at 8:21

Upon loading, watches should display and load child watches for true value type when not null

Currently, only the possibly interface or base type of a value is displayed and 
corresponding child member watches are displayed for a watch. After (possibly 
lazy loading), display text for a watch should be updated with the true type of 
the value of the watch, and the full list of members for that type used for 
child members.

Original issue reported on code.google.com by [email protected] on 19 May 2011 at 3:48

Include method members in addition to field and property members as children of a watch

In version 1.0.0-beta1 only non-public and public fields and properties are 
included as child watches of a watch, with the exception of GetType() and 
GetEnumerated(), which are specially created. Method watch children should not 
be loaded immediately upon watch expansion, rather they should only be loaded, 
asynchronously, after either selection (which doesn't load it's children), or 
expansion (which additionally, sequentially, loads it's children).

Original issue reported on code.google.com by [email protected] on 19 May 2011 at 1:35

Property accessor on object 'System.Xml.XmlElement' threw 'Object does not match target type.' exception

What steps will reproduce the problem?

1. Create instance of XmlDocument
2. Append processing instruction 'xml version="1.0" encoding="utf-8"'
3. Append document element
4. Inspect instance in new Data Grid

What is the expected output? What do you see instead?

System.Reflection.TargetInvocationException -->
Property accessor 'Name' on object 'System.Xml.XmlElement' threw the following 
exception:
'Object does not match target type'.

What version of the product are you using? On what operating system?

v2.1.0, Windows 8 x64

Please provide any additional information below.

#r @"c:\utils\fseye\fseye.dll"

open Swensen.FsEye.Fsi

let eye = eye
fsi.AddPrintTransformer eye.Listener;;

open System.Xml

let doc = new XmlDocument()
doc.AppendChild(doc.CreateProcessingInstruction("xml", "version=\"1.0\" 
encoding=\"utf-8\""))
doc.AppendChild(doc.CreateElement("Root"));;


Original issue reported on code.google.com by [email protected] on 23 Jun 2014 at 8:11

Attachments:

Embed window in Visual Studio

It would be good if FsEye could be downloaded through the Visual Studio 
Extension Manager and embed itself within Visual Studio.

Original issue reported on code.google.com by [email protected] on 24 Jan 2012 at 4:51

Occasional "SplitterDistance must be between Panel1MinSize and Width - Panel2MinSize" exception kills FSI

Occasionally we get the following exception message which kills FSI (possibly 
after calling FsEye.Show(), but hard to say, it doesn't happen very often):

System.InvalidOperationException: SplitterDistance must be between 
Panel1MinSize and Width - Panel2MinSize.
   at System.Windows.Forms.SplitContainer.set_SplitterDistance(Int32 value)
   at <StartupCode$FsEye>.$EyeSplitContainer.updateSplitterDistance@54(EyeSplitContainer this, Unit unitVar0)
   at <StartupCode$FsEye>[email protected](EventArgs _arg10)
   at Microsoft.FSharp.Control.CommonExtensions.SubscribeToObservable@2032.System-IObserver`1-OnNext(T value)
   at Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers.h@749.Invoke(Object _arg1, TArgs args)
   at <StartupCode$FsEye>[email protected](Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnSizeChanged(EventArgs e)
   at System.Windows.Forms.Control.UpdateBounds(Int32 x, Int32 y, Int32 width, Int32 height, Int32 clientWidth, Int32 clientHeight)
   at System.Windows.Forms.Control.UpdateBounds()
   at System.Windows.Forms.Control.WmWindowPosChanged(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.SplitContainer.WndProc(Message& msg)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Stopped due to error

Original issue reported on code.google.com by [email protected] on 6 Jul 2013 at 6:33

Crashes when trying to see details of System.Windows.Forms.WebBrowser

What steps will reproduce the problem?
1. Execute in f#Interactive
let browser = new System.Windows.Forms.WebBrowser()
2. fseye pops up
3. browser variable is shown
4. trying to expand the browser-treenode result in closing the fseye-window and 
the following exceptions appear in f#interactive:

 System.NullReferenceException: Object reference not set to an instance of an object.
   at Swensen.FsEye.WatchModel.getPropertyWatch@181(Object ownerValue, Type ownerTy, PropertyInfo pi)
   at [email protected](MemberInfo m)
   at [email protected](b& )
   at Microsoft.FSharp.Collections.IEnumerator.MapEnumerator`1.System-Collections-IEnumerator-MoveNext()
   at Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers.takeOuter@675[T,TResult](ConcatEnumerator`2 x, Unit unitVar0)
   at <StartupCode$FSharp-Core>[email protected](IEnumerable`1& next)
   at Microsoft.FSharp.Core.CompilerServices.GeneratedSequenceBase`1.MoveNextImpl()
   at Microsoft.FSharp.Core.CompilerServices.GeneratedSequenceBase`1.System-Collections-IEnumerator-MoveNext()
   at [email protected](b& )
   at Microsoft.FSharp.Collections.IEnumerator.MapEnumerator`1.System-Collections-IEnumerator-MoveNext()
   at [email protected](b& )
   at Microsoft.FSharp.Collections.IEnumerator.MapEnumerator`1.System-Collections-IEnumerator-MoveNext()
   at Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers.takeOuter@675[T,TResult](ConcatEnumerator`2 x, Unit unitVar0)
   at <StartupCode$FSharp-Core>[email protected](IEnumerable`1& next)
   at Microsoft.FSharp.Core.CompilerServices.GeneratedSequenceBase`1.MoveNextImpl()
   at Microsoft.FSharp.Core.CompilerServices.GeneratedSequenceBase`1.System-Collections-IEnumerator-MoveNext()
   at Microsoft.FSharp.Collections.SeqModule.ToArray[T](IEnumerable`1 source)
   at <StartupCode$FsEye>.$WatchTreeView.loadWatches@159(WatchTreeView this, SynchronizationContext context, TreeNode node, Watch watch)
   at <StartupCode$FsEye>[email protected](TreeViewEventArgs args)
   at Microsoft.FSharp.Control.CommonExtensions.SubscribeToObservable@1777.OnNext(T value)
   at Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers.h@744.Invoke(Object _arg1, TArgs args)
   at <StartupCode$FsEye>[email protected](Object sender, TreeViewEventArgs e)
   at System.Windows.Forms.TreeView.OnAfterExpand(TreeViewEventArgs e)
   at System.Windows.Forms.TreeView.TvnExpanded(NMTREEVIEW* nmtv)
   at System.Windows.Forms.TreeView.WmNotify(Message& m)
   at System.Windows.Forms.TreeView.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Stopped due to error
Microsoft.FSharp.Compiler.ErrorLogger+StopProcessing: Exception of type 
'Microsoft.FSharp.Compiler.ErrorLogger+StopProcessing' was thrown.
   at Microsoft.FSharp.Compiler.Interactive.Shell.ErrorLoggerThatStopsOnFirstError.AbortOnError()
   at Microsoft.FSharp.Compiler.Interactive.Shell.threadException@2131-1.Invoke(Unit unitVar0)
   at Microsoft.FSharp.Compiler.Interactive.Shell.threadException@2129[a](ErrorLoggerThatStopsOnFirstError errorLogger, a exn)
   at System.Windows.Forms.Application.ThreadContext.OnThreadException(Exception t)
   at System.Windows.Forms.Control.WndProcException(Exception e)
   at System.Windows.Forms.Control.ControlNativeWindow.OnThreadException(Exception e)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Forms.UnsafeNativeMethods.SendMessage(HandleRef hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at System.Windows.Forms.Control.SendMessage(Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Forms.Control.ReflectMessageInternal(IntPtr hWnd, Message& m)
   at System.Windows.Forms.Control.WmNotify(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Stopped due to error
Microsoft.FSharp.Compiler.ErrorLogger+StopProcessing: Exception of type 
'Microsoft.FSharp.Compiler.ErrorLogger+StopProcessing' was thrown.
   at Microsoft.FSharp.Compiler.Interactive.Shell.ErrorLoggerThatStopsOnFirstError.AbortOnError()
   at Microsoft.FSharp.Compiler.Interactive.Shell.threadException@2131-1.Invoke(Unit unitVar0)
   at Microsoft.FSharp.Compiler.Interactive.Shell.threadException@2129[a](ErrorLoggerThatStopsOnFirstError errorLogger, a exn)
   at System.Windows.Forms.Application.ThreadContext.OnThreadException(Exception t)
   at System.Windows.Forms.Control.WndProcException(Exception e)
   at System.Windows.Forms.Control.ControlNativeWindow.OnThreadException(Exception e)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Forms.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc, IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at System.Windows.Forms.NativeWindow.DefWndProc(Message& m)
   at System.Windows.Forms.Control.DefWndProc(Message& m)
   at System.Windows.Forms.TreeView.WmMouseDown(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.TreeView.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


What version of the product are you using? On what operating system?
Windows 7 64-bit
VS 2010 .net 4.0
fseye 1.0.0-final




Original issue reported on code.google.com by [email protected] on 28 Feb 2012 at 4:20

Remove Unquote dependency

We currently use Unquote's Type.FSharpName implementation, but that's all. In 
the future we'd like to factor that and other utilities out into a separate 
shared library, but for now we will do a copy and paste job.

Original issue reported on code.google.com by [email protected] on 31 Jul 2011 at 2:38

Keep track of Cleared watches and prevent them from being added back to the watch tree on subsequent FSI submissions

The Clear Watches and Clear All functions are currently one-shot actions: 
previously cleared watches are added back to FsEye on subsequent FSI 
submissions. We should be able to track previously cleared (or individually 
removed) watches and prevent them from being added back in.

Note that it may be useful to add a complementary feature that "unclears" 
previously cleared / removed watches.

Also note that resetting the FSI session acts as a "hard" clear, since FsEye 
can only maintains watches for the current FSI session.

Original issue reported on code.google.com by [email protected] on 21 Jul 2013 at 10:53

Implement Babel Icons

See: 

http://stackoverflow.com/questions/4462439/meaning-of-visual-studio-intellisense
-icons/4462522#4462522
http://msdn.microsoft.com/en-us/library/bb166402%28v=VS.90%29.aspx
http://msdn.microsoft.com/en-us/library/ms247035.aspx

Original issue reported on code.google.com by [email protected] on 20 Jul 2011 at 6:35

Include fields, properties, and method from inherited base-class and explicit interfaces of a watch

Only fields, properties, and methods (dependent on issues #2) directly on the 
instance of the class being watched are shown as children. Child members from 
inherited (not overridden) classes and explicit interface implementations 
(normal for F# classes, but not as normal for other .NET framework classes) 
should also be shown. Their names should be qualified by the base / interface 
name, but ordered by the (case-insensitive as usual) member name. Redundancy 
should be avoided within public / non-public divisions, resolving to the 
sub-most class / interface.

Original issue reported on code.google.com by [email protected] on 19 May 2011 at 1:44

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.