Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitee99f30

Browse files
dungpaKevinRansom
authored andcommitted
Bring back OnIdle registration for Error List processing (dotnet#2043)
* Bring back OnIdle registration for Error List processingFixdotnet#1988.* Add null checks
1 parent9f6338c commitee99f30

File tree

1 file changed

+50
-0
lines changed
  • vsintegration/src/FSharp.ProjectSystem.FSharp

1 file changed

+50
-0
lines changed

‎vsintegration/src/FSharp.ProjectSystem.FSharp/Project.fs‎

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,24 @@ namespace rec Microsoft.VisualStudio.FSharp.ProjectSystem
189189

190190
// FSI-LINKAGE-POINT: unsited init
191191
do Microsoft.VisualStudio.FSharp.Interactive.Hooks.fsiConsoleWindowPackageCtorUnsited(this:> Package)
192+
193+
let mutablemgr:IOleComponentManager=null
194+
let mutablecomponentID=0u
195+
196+
memberthis.RegisterForIdleTime()=
197+
mgr<- this.GetService(typeof<SOleComponentManager>):?> IOleComponentManager
198+
if componentID=0u&&not(isNull mgr)then
199+
letcrinfo= Array.zeroCreate<OLECRINFO>(1)
200+
let mutablecrinfo0= crinfo.[0]
201+
crinfo0.cbSize<- Marshal.SizeOf(typeof<OLECRINFO>)|> uint32
202+
crinfo0.grfcrf<- uint32(_OLECRF.olecrfNeedIdleTime|||_OLECRF.olecrfNeedPeriodicIdleTime)
203+
crinfo0.grfcadvf<- uint32(_OLECADVF.olecadvfModal|||_OLECADVF.olecadvfRedrawOff|||_OLECADVF.olecadvfWarningsOff)
204+
crinfo0.uIdleTimeInterval<-1000u
205+
crinfo.[0]<- crinfo0
206+
letcomponentID_out= ref componentID
207+
let_hr= mgr.FRegisterComponent(this, crinfo, componentID_out)
208+
componentID<- componentID_out.Value
209+
()
192210

193211
/// This method loads a localized string based on the specified resource.
194212
@@ -289,6 +307,8 @@ namespace rec Microsoft.VisualStudio.FSharp.ProjectSystem
289307
Microsoft.VisualStudio.FSharp.Interactive.Hooks.fsiConsoleWindowPackageInitalizeSited(this:> Package) commandService
290308
// FSI-LINKAGE-POINT: private method GetDialogPage forces fsi options to be loaded
291309
let_fsiPropertyPage= this.GetDialogPage(typeof<Microsoft.VisualStudio.FSharp.Interactive.FsiPropertyPage>)
310+
311+
this.RegisterForIdleTime()
292312
()
293313

294314
/// This method is called during Devenv /Setup to get the bitmap to
@@ -340,7 +360,37 @@ namespace rec Microsoft.VisualStudio.FSharp.ProjectSystem
340360
GetToolWindowAsITestVFSI().SendTextInteraction(s)
341361
memberthis.GetMostRecentLines(n:int):string[]=
342362
GetToolWindowAsITestVFSI().GetMostRecentLines(n)
363+
364+
interface IOleComponentwith
365+
overridethis.FContinueMessageLoop(_uReason:uint32,_pvLoopData:IntPtr,_pMsgPeeked:MSG[])=
366+
1
367+
368+
overridethis.FDoIdle(grfidlef:uint32)=
369+
// see e.g "C:\Program Files\Microsoft Visual Studio 2008 SDK\VisualStudioIntegration\Common\IDL\olecm.idl" for details
370+
//Trace.Print("CurrentDirectoryDebug", (fun () -> sprintf "curdir='%s'\n" (System.IO.Directory.GetCurrentDirectory()))) // can be useful for watching how GetCurrentDirectory changes
371+
letperiodic=(grfidlef&&&(uint32_OLEIDLEF.oleidlefPeriodic))<>0u
372+
if periodic&&not(isNull mgr)&& mgr.FContinueIdle()<>0then
373+
TaskReporterIdleRegistration.DoIdle(mgr)
374+
else
375+
0
376+
377+
overridethis.FPreTranslateMessage(_pMsg)=0
378+
379+
overridethis.FQueryTerminate(_fPromptUser)=1
380+
381+
overridethis.FReserved1(_dwReserved,_message,_wParam,_lParam)=1
382+
383+
overridethis.HwndGetWindow(_dwWhich,_dwReserved)=0n
384+
385+
overridethis.OnActivationChange(_pic,_fSameComponent,_pcrinfo,_fHostIsActivating,_pchostinfo,_dwReserved)=()
386+
387+
overridethis.OnAppActivate(_fActive,_dwOtherThreadID)=()
388+
389+
overridethis.OnEnterState(_uStateID,_fEnter)=()
390+
391+
overridethis.OnLoseActivation()=()
343392

393+
overridethis.Terminate()=()
344394

345395
/// Factory for creating our editor, creates FSharp Projects
346396
[<Guid(GuidList.guidFSharpProjectFactoryString)>]

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp