1. 30 6月, 2018 1 次提交
  2. 06 6月, 2018 1 次提交
  3. 24 4月, 2018 1 次提交
    • H
      push text edit to OOP (#25953) · 25fbfe40
      Heejae Chang 提交于
      * moving methods around to clean things up.
      
      * more clean up
      
      * added comment
      
      * more code re-arrange
      
      * revert some clean up back since that requires some changes I dont want to do for clean up
      
      * optimize text change synchronization
      
      previously, all files were synced between VS and OOP by file. it might use memory map file to sync, but it regardless always synched whole file.
      
      this optimization add special care on text change case. now it will sync only text change rather than whole file when conditions are met.
      
      this should remove most of cases where we need to sync whole file while typing.
      
      adding this so that we can move editor centric features to OOP (features that respond to typing)
      
      previously OOP would only hosts features such as FAR, full solution diagnostics, LUT and etc. where synching a file is not big cost compared to works features doing and doesn't require to sync file per each key stroke.
      
      * address PR feedback
      
      * workaround this bug - https://github.com/dotnet/roslyn/issues/26305
      
      this will be removed once the bug is fixed
      25fbfe40
  4. 31 3月, 2018 1 次提交
  5. 07 3月, 2018 1 次提交
    • H
      Blame (#24043) · a105ce76
      Heejae Chang 提交于
      * enable logAnalyzerExecutionTime on IDE so that we can start track analyzer perf
      
      * removed unnecessary ICodeAnalysisDiagnosticAnalyzerExecutor interface.
      
      it was added when OOP is first introduced to make sure VS.Next dll won't get loaded to VS process if OOP is not enabled.
      
      when it is enabled by default, rather than removing the interface, implementation just moved down to feature layer to reduce code churn.
      
      now, I am properly removing unnecessary abstraction.
      
      * take Executor out of test MEF composition
      
      * added IRemoteDiagnosticAnalyzerService interface
      
      * made initial version working.
      
      * added tests
      
      * add tracking for inproc only analyzers
      
      * pass in diagnostic analyzer service
      
      * added open file performance tracking as well.
      
      * added PII test
      
      * dont hash analyzerId when it is reported by internal user
      
      * added link to LOF wiki
      
      * made blame to track open files as well.
      
      * forgot to add return in if statement
      
      * reduce threshold to 100ms
      
      decide to start from lower threshold and then iterate rather than start from higher threshold
      
      * added a way to log real time perf data in local machine with explicit option which can be used to train formula later
      
      * addressed ivan's feedbacks
      
      * renamed to ExpensiveAnalyzerInfo
      
      * addressed PR feedbacks
      
      * more renames
      
      * addressed PR feedbacks.
      
      renamed as much as I can find.
      
      * listener can be null in unit test
      
      * addressed PR feedbacks
      a105ce76
  6. 16 2月, 2018 1 次提交
  7. 03 2月, 2018 1 次提交
    • D
      Merge dev15.7.x to dev15.7.x-vs-deps (#24598) · 6e9d56a2
      dotnet bot 提交于
      * Remove duplicate lock DocumentState.s_syntaxTreeToIdMapLock
      
      This lock is only being used to protect access to an instance which contains
      internal synchronization.
      
      * Better handle surrounding directives when inlining a local variable.
      
      * Add tests.
      
      * Share code between VB and C#.
      
      * Reduce allocations in UnboundLambda
      
      Fixes #23463
      
      * Restore ReturnInferenceCacheKey as the key for _returnInferenceCache
      
      * Update code to more closely follow patterns of the original code
      
      * Cleanup from code review
      
      * basic fix for intellisense in Immediate window
      
      * better comments and cleanup
      
      * Add basic integration tests
      
      * cleanup inproc Immediate window integration test helper
      
      * fix incorrect comment
      
      * address PR feedback
      
      * create Immediate window on ImmediateWindow_InProc.GetText()
      
      * Verify MSBuild version in Developer CMD prompt
      
      Roslyn is designed to have the simplest possible contribution story:
      clone then build. Every pre-req needed is either located on the machine
      or bootstrapped via NuGet. All the way down to using an xcopy MSBuild if
      needed.
      
      The one case which causes a problem is the VS command prompt. In this
      case MSBuild is pre-installed on the machine and may or may not be
      suitable for building Roslyn.
      
      Previously when building from a VS command prompt we just used whatever
      MSBuild was provided. The assumption being a developer command prompt
      was an explicit statement of whath MSBuild you wanted to use. Based on
      all of our customer reports though this does not seem to be the
      assumption that consumers of our repo have. The build gave them no
      explicit errors about the provided toolset and hence when the build
      failed they assigned flakiness to our repo.
      
      Going forward we are applying the same version validation to MSBuild
      when provided via a developer command prompt. If it doesn't match we
      will refuse to build asking the user to upgrade VS or build from a
      normal command prompt.
      
      * Remove unneeded debugging line
      
      * Comment about pre-release
      
      * Added minimum version
      
      * Add Omit If Default style option
      
      * Add space to be like test without the omit
      
      * Add/Remove without needing a property
      
      * Reformat
      
      * PR feedback
      
      * Fix VB diagnostic based on feedback
      
      * Handle case of NotApplicable modifier and field declaration list
      
      * Fix tests
      
      * PR feedback
      
      * PR feedback
      
      * PreviewCodeAction was overriding ComputeOperations but returning a post-processed operation from original action. This results in another PostProcess being called on the codeaction. If postprocess was overriden in originalaction that'll be ignored the second time (#23920)
      
      * Support negative null-check when we are suggesting to inline type checks
      
      Fixes #21097
      Fixes #24286
      
      * fix a case where persistent storage registration fails and some clean… (#24458)
      
      * fix a case where persistent storage registration fails and some clean up code around it.
      
      * added readonly
      
      * address PR feedback
      
      * removed comments no longer relevant
      
      * renamed lock name
      
      * moved waiter from diagnostics.dll to features.dll where all interfaces are defined. (#24512)
      
      * put listener change back in (https://github.com/dotnet/roslyn/pull/24120)
      
      * leave old types in legacy folder until partner teams move to new interface
      
      * added legacy waiter to support partner teams
      
      * Remove methods indirecting access to _metadataFileNameToConvertedProjectReference
      
      This field is documented as being written and read from any thread,
      but in practice all uses are guarded by an AssertIsForeground(). Thus
      we can get rid of the helper methods that are trying to "help" by
      locking before accessing the fields, making it really hard to track all
      the real uses of it.
      
      * Make method static that doesn't need state
      
      * add a comment to address PR feedback
      
      * Fix up tests of P2P to metadata reference conversion
      
      It turns out we had some tests, but the tests were disabled. This was
      because the tests weren't working properly anyways: they were calling
      into UpdateProjectBinPath which only updated some (but not all) of
      the project state. That was an internal helper method that shouldn't
      be used by tests. Updating the tests to use
      SetBinOutputPathAndRelatedData works better.
      
      * Delete debug-only reference validation
      
      This was some legacy code that tried to verify that the references
      we have from the project system match up to what DTE and other sources
      say. This was debug-only, and the actual asserts were commented out.
      This is deadweight at this point, so delete it.
      
      * added and cleaned up logs around build and live diagnostics. (#24551)
      
      also added RoslynActivityLogger that can be enabled through project-system-tool
      
      * Avoid closure allocations on the BindSyntaxTreeToId fast path
      
      * CS1628 error text mentions in parameters; fixes #24584
      
      * Small cleanup of completion logic.
      
      * Move to xunit.console for CoreClr tests
      
      Previously we were using xunit.console for desktop tests and dotnet-xunit for our
      CoreClr tests. This change unifies us on top of xunit.console (now that it has a
      netcoreapp2.0 version available).
      
      * Move unix builds to xunit.runner.console as well
      
      * Get actual directory name, not file
      
      * Fix dir name issue
      
      * fixed build break
      6e9d56a2
  8. 01 2月, 2018 1 次提交
  9. 08 12月, 2017 1 次提交
  10. 06 12月, 2017 1 次提交
  11. 21 11月, 2017 1 次提交
  12. 27 10月, 2017 1 次提交
    • H
      added completion set and fix all telemetry to track performance (#22811) · 33b8070b
      Heejae Chang 提交于
      * added time tracking to completion set.
      
      from the point we start completion set to first time we are called from VS for best match (which indicate that completion set is actually shown to users first time for this particular completion session)
      
      the event is vs/ide/vbcs/intellisense/completion
      
      if completion is done without showing UI to users (etc or tab), then event will be marked as cancelled.
      
      * added perf tracking to LB fix all.
      
      there were already existing events so I just made those to include perf info (duration) as well.
      
      among all those events, these 2 are ones we were planning to add
      
      vs/ide/vbcs/codefixes/fixalloccurrencescomputation
      this shows time from the point user invoked fix all to where we shows preview window to users.
      
      vs/ide/vbcs/codefixes/applychanges
      this shows time from user clicked Apply from preview window to where we actually applied the changes to VS
      
      there are more events between them in case we want to dig in details later such as how long it took to calculate diagnostics, how many files are affected and etc.
      
      also all related events have correlation id to group related code fix events. also for fix all case, it contains scope to show whether fix all is for document, project, solution.
      
      * PR feedback. removed unnecessary parameter
      
      * removed repeated correction id set
      
      * updated comments.
      33b8070b
  13. 09 9月, 2017 1 次提交
  14. 18 5月, 2017 1 次提交
    • H
      log info for ab testing · 95a7c450
      Heejae Chang 提交于
      state progress as below
      
      1. StartCandidacyRequirementsTracking <- first time user user LB (only once per user)
      2. HasMetCandidacyRequirements <- when requirement is met (only once per user)
      3. AnalyzerEnabledFlight <- when the user accepted as flight group (multiple times until user take action)
      4. InfoBarShown <- when info bar is shown (multiple times until user takes an action)
      
      actions user can take. (this can only happen once)
      1. AnalyzerVsixHyperLine <- user choose to go to the link
      2. NeverShowAgain <- user decide not to participate in the experiment
      
      if user choose to install vsix (this can only happen once - unless user manually reinstall the vsix...)
      1. Installed
      2. Uninstalled
      
      the first time user installed the vsix, we will report these extra info
      1. DocumentDiagnostics - report only once per a document
      2. ProjectDiagnostics - report only once per project
      
      these 2 report include count per errors and FSA status. these only report once and never report again.
      95a7c450
  15. 09 5月, 2017 2 次提交
  16. 03 5月, 2017 1 次提交
  17. 02 4月, 2017 1 次提交
  18. 22 3月, 2017 1 次提交
  19. 01 3月, 2017 1 次提交
  20. 28 2月, 2017 1 次提交
  21. 23 2月, 2017 1 次提交
  22. 22 2月, 2017 2 次提交
  23. 10 2月, 2017 1 次提交
  24. 31 1月, 2017 1 次提交
    • H
      added max file limit when reading text file from disk. · e83cd717
      Heejae Chang 提交于
      this is added so that we can reduce chance of OOM when user added massive size text file to solution.
      
      current default max is 100MB. but user can override it through hidden reg key if they want to.
      
      if such file is added, FileTextLoader will throw InvalidDataException and Workspace will raise Workspace Failed event.
      
      in VS host case, we will show the failed event in output windows.
      
      made it to use test option service since option is mutable workspace state which affects all other tests.
      e83cd717
  25. 14 11月, 2016 1 次提交
  26. 22 10月, 2016 2 次提交
  27. 14 10月, 2016 1 次提交
  28. 13 10月, 2016 2 次提交
    • H
      track session across remote host · b4941197
      Heejae Chang 提交于
      now OOP tracks session id across 2 processes. VS and remote host.
      
      this should let us use exact connection for the session communication and use exact pinned snapshot for the session.
      
      this should improve cancellation tracking (since we use connection for cancellation) and perf of finding pinned asset for the session.
      b4941197
    • H
      sync whole solution first · 3d48b72d
      Heejae Chang 提交于
      3d48b72d
  29. 11 10月, 2016 1 次提交
  30. 10 10月, 2016 1 次提交
  31. 15 9月, 2016 1 次提交
  32. 14 9月, 2016 2 次提交
  33. 09 9月, 2016 1 次提交
  34. 31 8月, 2016 1 次提交
    • H
      make VS to send over initial assets in batch mode · 3765e967
      Heejae Chang 提交于
      this makes sending over roslyn-internal solution data to OOP from 3 minutes to 4 seconds.
      
      after that, only changed assets are sent over which is usually less than 1-2ms.
      
      this optimization is only for actually moving data between 2 processes. there are other things involved which need to be optimized as well to make whole system to be faster than right now (which takes about 1+ mins for initial solution load)
      3765e967
  35. 17 8月, 2016 1 次提交