WIP Integrate visualfsharp master #655

merged 424 commits into from Jan 27, 2017


None yet
dsyme commented Jan 20, 2017

An attempt to integrate the latest from visualfsharp master.

dsyme and others added some commits Nov 29, 2016
@dsyme dsyme fix spaces in path (#1888) dc08514
@kurtschelfthout @dsyme kurtschelfthout Omitting Optional; DefaultParameterValue arguments passes the default…
… value and works for F# to F# calls (#1812)

* First rough try.

* Write DefaultParameterValue to Constant table.

* Rename GenDefaultParameterValue and make local.

* Optional+DefaultParamValue args F# to F# works.

* Add first set of tests.

* Add more tests.

* Extract const to fieldinit code to active pattern.

* Add tests for Nullable optional parameters.

* Add one more test.

* Add compiler error to avoid unverifiable code.

* Add proper comment.

* Spaces.

* Allow callling F# methods only marked with Optional.

The behavior here matches that of C# as far as I can tell, but it seems
unspecified anywhere. I could not find a reference to it in the C# 5.0
spec or C# 6.0 draft spec. In particular the System.Reflection.Missing
for obj is interesting.

* Make error into a warning, improve text.

* Clean up test names, more conventional.

* Add test that calls F# from F# in other assembly.
@dsyme dsyme fix FSHarp.Compiler project load in VS (#1889) 9b05cf6
@dsyme dsyme Fix glyph for local (#1892)
* fix glyph

* fix glyph

* fix glyph
@vasily-kirichenko @dsyme vasily-kirichenko make init-tools.cmd use default proxy (#1897)
add notes on configuring nuget.exe to use proxy
@dsyme dsyme fix tests (#1899) fd95665
@forki @dsyme forki Extend message for FS3022 - closes #134 (#1851) f08fcd4
@dsyme dsyme Improve the tutorial (#1904)
* fix tests

* FIx tutorial
@dsyme dsyme Fix 1898 (#1900)
* fix tests

* fix-1898

* better diagnostics in env.lst
@dsyme dsyme Refresh the check of files when notified by F# analysis engine (#1906)
This fixes a large chunk of Microsoft/visualfsharp#1808. I've tested it by hand. The build still doesn't react to files coming/going in DependencyFiles.  I'll adjust the description in Microsoft/visualfsharp#1808 to make the cases distinct. Basically F# has an analysis engine which tells the UI when to do "foreground" rechecks of files because the checking state has changed. This reacts to those events. See https://fsharp.github.io/FSharp.Compiler.Service/queue.html for some info.

When the UI gets the focus on a document, it should also notify the F# engine to start checking that document

* fix tests

* Fix bridge between backgronud builders

* fix test
@forki @dsyme forki Emit special warning when = is used and user might want to use <- (#1…

* Emit special warning when = is used and user might want to use <-

* Don't warn if there is no setter

* Move IsPropertyGetter and IsPropertySetter to tast.fs

* Show property name in error message

* Use IsPropertyGetterMethod/IsPropertySetterMethod in Symbols.fs

* Only warn on last expression in a sequence - fixes #326

* Extract ReportImplicitlyIgnoredBoolExpression as separate function

* Detect "in" expressions
@vasily-kirichenko @dsyme vasily-kirichenko always allow breakpoints to be set on same line if possible (#1918) 90aac4d
@vladima @dsyme vladima use shared MEF components instead of static fields (#1912)
* use shared MEF components instead of static fields

* revert back stateless static methods that were used in tests

* remove Document from the signature
@forki @dsyme forki Don't compute ranges and stuff when we don't need that (#1927) f1882ac
@vasily-kirichenko @dsyme vasily-kirichenko fix autocomplete after integer literals (#1930)
do not trigger autocomple after double dot
@dungpa @dsyme dungpa Enable zooming in F# Interactive window (#1914)
Address #1840.
@dsyme dsyme Fix "ci_part1" tests on master (#1931)
* Update Tests.LanguageService.Completion.fs
@dungpa @dsyme dungpa Re-add Execute/Debug in Interactive context menu (#1913)
* Hook F# Interactive menu commands into language service

Rudimentary implementation

* Refactor

* Refactor again for better robustness
@vasily-kirichenko @dsyme vasily-kirichenko Do not throw exception if LanguageDebugInfoService.GetDataTipInfoAsyn…
…c do not run to completion (#1926)

* do not throw exception if LanguageDebugInfoService.GetDataTipInfoAsync do not run to completion

* CommonRoslynHelpers.StartAsyncAsTask catches exceptions and transform them to Assert.Exception instead of reraising
@rojepp @dsyme rojepp Handle cancellation of AddProjectItemDlg (#1936)
Fixes #1768
@dsyme dsyme Update DEVGUIDE.md 898610b
@forki @dsyme forki Trace errors in from fsdiff (#1887)
* Trace errors in from fsdiff

* Port diff code

* Remove diff.exe and use it directly in F# TestSuite
@vasily-kirichenko @KevinRansom vasily-kirichenko do not trigger autocomplete after numeric literals (#1946) 01c2555
@Rickasaurus @KevinRansom Rickasaurus Use Jaro-Winkler distance to give better predictions - fixes #1863 (#…
@KevinRansom KevinRansom Update lkg (#1947) 6826756
@cartermp @KevinRansom cartermp Don't show empty parameter XML Doc in signature helper and correctly …
…compute argument index (#1895)

* Show 'no documentation' as QuickInfo workaround when no XML doc comments are defined

* Don't add newline if there aren't parameter docs

* Don't ask BuildMethodOverloadTipText to also handle parameters

* Show all parameters when invoking signature helper

* Account for edge case when computing argument index.

* Adjust tests
@forki @KevinRansom forki Try to fix #977 (#1837) 1099a5e
@vasily-kirichenko @KevinRansom vasily-kirichenko Fix duplicated error in diagnostics (#1929)
* fixed: DocumentDiagnosticAnalyzer.AnalyzeSemanticAsync returns parse errors but should not

* fix DocumentDiagnosticAnalyzer tests
@forki @dsyme forki Fix SignatureHelpProviderTests (#1949)
* Fix SignatureHelpProviderTests

* Fix SignatureHelpProviderTests
@forki @dsyme forki Skip AddTyconRefsToNameEnv calc if tcrefs are empty (#1959) 419369b
@forki @dsyme forki Skip AddValRefsToNameEnvWithPriority calc if vrefs are empty (#1960) 206ef80
@vasily-kirichenko vasily-kirichenko fixed: CommonHelpers.tryClassifyAtPosition return wrong result at the…
… end position
@brettfo brettfo update vsix package authoring to use the latest tools (#1903)
Update vsix generation to use latest tools.
@dsyme dsyme Fix build (#1967)
Build was failing, I think this is the right fix
dsyme fix build for rc2 a6ef69b
dsyme Revert "fix build for rc2"
This reverts commit a6ef69b.
@brettfo brettfo Revert "update vsix package authoring to use the latest tools" (#1970)
This reverts commit 24de4a9350bba475ccc30e6104124a62baa164c2.
@brettfo brettfo Back packages.config off to Dev14-compatible version. 60b2b94
@vasily-kirichenko vasily-kirichenko add NavigateToSearchService 49fc306
@vasily-kirichenko vasily-kirichenko move tree worker to ServiceNavigation.fs eb3ec6f
@vasily-kirichenko vasily-kirichenko works, but no filtering yet f3cdaec
@vasily-kirichenko vasily-kirichenko indexing and caching NavigateTo results 71d3093
@vasily-kirichenko vasily-kirichenko use ConditionalWeakTable instead of ConcurrentDictionary
cache built inexes instead of NavigableItem arrays
@vasily-kirichenko vasily-kirichenko implement FindReferencesService cdb64cf
@dungpa dungpa Try to find previous non-empty line for correct indentation
Fix #1980.
@vasily-kirichenko vasily-kirichenko fixed exception when trying find references on external symbol 3e24718
@vasily-kirichenko vasily-kirichenko use file check results to find symbol usages if symbol is private to …
@cartermp cartermp Clean up signatures so they're Roslyn-like 87331ef
@cartermp cartermp minor formatting/renaming 2c87554
@vasily-kirichenko vasily-kirichenko add NavigationBarItemService f24edf6
@vasily-kirichenko vasily-kirichenko add module let bindings to navigation bar
navigation bar jumps to symbols
@vasily-kirichenko vasily-kirichenko add signature files support to Navigation Bar a2f7870
@vasily-kirichenko vasily-kirichenko one file -> many Documents
fix FSharpSymbol.IsPrivateToFile
@vasily-kirichenko vasily-kirichenko solution wide FindReferencesService dc14eb0
@brettfo brettfo Update `master` to VS2017 RC2 (#1996)
* update vsix package authoring to use the latest tools

* Fix build

Build was failing, I think this is the right fix

* update docs to refer to VS 2017 RC2 (#1998)
@vasily-kirichenko @KevinRansom vasily-kirichenko warp QuickInfo text (#1981) 3b01766
@KevinRansom KevinRansom Merge branch 'organize' of https://github.com/cloudRoutine/visualfsharp
… into cloudRoutine-organize
@KevinRansom KevinRansom Merge branch 'cloudRoutine-organize' bf2a110
@KevinRansom KevinRansom Add back the coreclr fsharp unit test cases (#1971)
* Add back coreclr fsharp test cases

* Add environment Variables to config report.

* Report registry

* Move et sdk paths earlier in process

* Apparently mono has an issue with targetbefore=

* Fix typos

* More typos

* Revert "More typos"

This reverts commit 9e5bcbb0a813494ea7a79b71b8033b82a32dc24b.

* Revert "Fix typos"

This reverts commit 251cf8020dff5dcddec8d3dd0de68a4f1a53a740.

* Revert "Apparently mono has an issue with targetbefore="

This reverts commit d10773d96540eb2db4680ee81443eea4773d6b97.

* Change copy after targets

* Use targets that work on ubuntu

* Optional Arguments test case had a dependency on a non guaranteed environment variable.
@dungpa @KevinRansom dungpa Do not try open FSI window when querying debugger states (#1983)
Fix #1972.
@KevinRansom KevinRansom Merge branch 'roslyn-tooltips' of https://github.com/cartermp/visualf…
…sharp into cartermp-roslyn-tooltips
@KevinRansom KevinRansom Merge branch 'cartermp-roslyn-tooltips' 38ef4f7
@KevinRansom KevinRansom Add ci_part3 pass to groovy 812dcfc
@KevinRansom KevinRansom add action to groovy for ci_part3 696c6f7
@KevinRansom KevinRansom Add ci_part3 (#2003) d2a5ee6
@KevinRansom KevinRansom Merge branch 'navigation-bar' of https://github.com/vasily-kirichenko…
…/visualfsharp into vasily-kirichenko-navigation-bar
@KevinRansom KevinRansom Resolve merge issue 29a7d7d
@KevinRansom KevinRansom Fix ide unit tests broken by adding wrap to QuickInfo 58ed279
@KevinRansom KevinRansom Merge branch 'vasily-kirichenko-navigation-bar' ad1592e
@liboz @KevinRansom liboz Fix NullReference Error with Units of Measure (#1995)
* test for #1553:  NullReferenceException when type annotation is not used

* attempted fix for #1553: NullReferenceException when type annotation is not used
@KevinRansom KevinRansom Merge branch 'indentation' of https://github.com/dungpa/visualfsharp
…into dungpa-indentation
@KevinRansom KevinRansom Merge branch 'dungpa-indentation' fe7f859
@vasily-kirichenko vasily-kirichenko Merge branch 'master' into navigate-to
@vasily-kirichenko vasily-kirichenko fix after merge cb6deda
@vasily-kirichenko vasily-kirichenko update Microsoft.CodeAnalysis.xxx packages to 2.0.0-rc 0c86028
@vasily-kirichenko vasily-kirichenko update Microsoft.CodeAnalysis.xxx packages to 2.0.0-rc2 71ef137
@forki @KevinRansom forki There are more class ctors (#2002) 831f666
@KevinRansom KevinRansom Merge branch 'master' into find-all-references 8ea9fc5
@forki @KevinRansom forki Error number in VS and command line should match (#1984) 526a409
@rojepp @KevinRansom rojepp Implement F1 HelpContextService (#1966)
* WIP: implement F1 HelpContextService

Implements #1938

* Small cleanup

* Enable context help tests for provided types

* Delete old tests

* Rebase against master
@forki @KevinRansom forki Single val ref (#1969)
* Do not create Array for simple ValRefs

* Extract method

* remove duplicate call

* add type hint

* Do not check attributes over and over again
@forki @KevinRansom forki Fixing #461 - warning with a reference to non existing location in so…
…urce file (#1852)

* Try to reproduce #461

* Extract namespaces and put FS0988 at end of file - fixes #461

* Don't generate wrong range

* Fix test

* We should never assume there is a pos 80

* Fix test

* Fix test
@forki @KevinRansom forki Improve error reporting: override method does not match abstract memb…
…er - references #1430 (#1950)
@brettfo brettfo update Roslyn references to RC2 c117fd4
@KevinRansom KevinRansom Remove notIsNull from ide code e10ccda
@KevinRansom KevinRansom Merge branch 'master' of https://github.com/Microsoft/visualfsharp f4bfe75
@brettfo brettfo color intrinsic types as keywords (#2004)
* color intrinsic types as keywords

* add `array`, `list`, and `seq` keywords
@forki @KevinRansom forki Don't run neg tests in groups (#2012) 688dbcd
@KevinRansom KevinRansom Expunge isNotNull usage 7a93f24
@KevinRansom KevinRansom Merge branch 'master' of https://github.com/Microsoft/visualfsharp de24eed
@KevinRansom KevinRansom pcls didn't build 08e3a47
@KevinRansom KevinRansom Merge branch 'update-roslyn-references' of https://github.com/brettfo…
…/visualfsharp into brettfo-update-roslyn-references
@forki @KevinRansom forki Do not expose isNotNull (#1968) 1876068
@KevinRansom KevinRansom Fix hintpaths 501d744
@KevinRansom KevinRansom Merge branch 'brettfo-update-roslyn-references' 4dde113
@KevinRansom KevinRansom Merge branch 'master' of https://github.com/Microsoft/visualfsharp c9cdd8a
@KevinRansom KevinRansom Merge branch 'master' into find-all-references 0cf67ad
@KevinRansom KevinRansom Merge branch 'fix-classify-at-position' of https://github.com/vasily-…
…kirichenko/visualfsharp into vasily-kirichenko-fix-classify-at-position
@KevinRansom KevinRansom Merge branch 'vasily-kirichenko-fix-classify-at-position' af883e4
@KevinRansom KevinRansom update hints dc1dc83
KevinRansom and others added some commits Dec 26, 2016
@KevinRansom KevinRansom Enable fsharp fsi-basic tests for coreclr testing (#2099)
* Add back tuples to OSS build project

* Enable fsharp fsi-basic tests for coreclr testing

* update baselines for help text
@jack-pappas @KevinRansom jack-pappas Enable macOS (OS X) testing for Travis CI builds. (#2109) 674ee40
@dungpa @KevinRansom dungpa Implement interface code fix (#2112)
* Create InterfaceStubGenerator service

* Add a prototype of ImplementInterface code fix

* Fix indentation calculation

* Support both interface declarations and object expressions

* Handle already implemented members

* Localize lightbulb text

* Rename labels
@forki @KevinRansom forki Add a codefix that suggests replacements for unknown identifiers (#2106)
* Add a codefix that suggests replacements for unknown identifiers

* Use sets

* Better naming

* Change prediction text a bit to better work with MSBuild errors

* cleanup

* Suggest id if it is an infix
@cartermp @KevinRansom cartermp Update Tutorial Script (#2122)
* Update Tutorial Script

* Feedback and add more print statements
@forki @KevinRansom forki Suggest Record labels and Union cases (#2119)
* Show that we can't suggest record labels

* Suggest record labels - fixes #2117

* cleanup

* Fix the test

* New test for union cases

* Suggest union cases

* Suggest more unions

* Fix tests
@dungpa @KevinRansom dungpa Various fixes for implement interface code fix (#2120)
* Insert closing brackets if they are missing

* Find correct interface identifiers if object expressions are on the same lines with let bindings
@dungpa @KevinRansom dungpa Implement XmlDoc comment generation (#2121)
* Add a service for XmlDocParser

* Add corresponding VS service

* Use VS workspace to retrieve correct documents

* Use current snapshot to ensure source text is fresh
@forki @KevinRansom forki Propose Uppercase for FS0053 (#2116)
* Propose Uppercase for FS0053

* make ProposeUppercaseLabel code fix work on all symbol uses

* cleanup

* refactor with asyncMaybe

* add ParseAndCheckDocument

* refactor ProposeUppercaseLabel
@liboz @KevinRansom liboz Reduce IL generation in GetHashCode for Discriminated Unions (#2096)
* return the union's tag when case is nullary

* fix IL tests

* ensure that gethashcode is not inlined

* only for compilergenerated cases now
@forki @KevinRansom forki Create the FSharpChecker like VFPT does - fixes #1974 (#2124) 6638ed3
@dsyme @KevinRansom dsyme fix syntax errors and transitive errors in scripts (#1963)
* fix 1962

* fix warnings

* simplify diagnostics processing

* simplify diagnostics processing (2)

* remove project

* fix build

* fix build

* fix build

* fix build

* merge master

* fix build of tests

* fix error flag

* fix tests and build

* fix tests

* fix test

* test diagnostic

* fix isError mistake and clarify namings Error --> Diagnostic
@vasily-kirichenko @KevinRansom vasily-kirichenko Better attribute completion (#2095)
* add FSharpDeclarationListItem.IsAttribute

try to handle attributes in a special way at attribute application point (wip)

* almost works

* suggest all types, modules and namespaces at attribute application position

* fix Context.AttributeApplication detection

* autocomplete does not remove "Attribute" suffix if an attribute type does not have it

fix related tests

* do not try to use AstVisitorBase to determine that we are at attribute application position

* try to fix tests

* fix some tests

* cut attribute prefix on editor side

* fixed: IsAttribute can throw exceptions which results with empty completion list

* fix tests
@vasily-kirichenko @KevinRansom vasily-kirichenko Enable Roslyn's non blocking code complete (#2105)
* enable Roslyn's non blocking code complete

update Microsoft.CodeAnalysis.xxx packages to version 2.0.0-rc3-61225-01

* roll back to Microsoft.CodyAnalysis.xxx RC2 nuget packages
@dungpa @KevinRansom dungpa Update lightbulb text (#2126) 51ba1ef
@cartermp @KevinRansom cartermp Update tutorial script to include immutability and pipelines (#2129)
* Update tutorial script to include immutability and pipelines

* Updates/feedback
@jack-pappas @KevinRansom jack-pappas Modify before_install.sh for OSX compatibility (#2125)
* Modify before_install.sh for OSX compatibility

Modify before_install.sh so it works on OSX. The script now performs
rudimentary OS detection, and Linux-specific commands are only
executed when running on Linux.

* Fix before_install for POSIX shells.

Use the correct string comparison operator (= instead of ==).
Modified the command substitution where certmgr is called so it uses the
modern $(...) syntax instead of backticks.
@vasily-kirichenko @KevinRansom vasily-kirichenko do not suggest open namespaces in case of misspelled names (#2137) 6063651
@jack-pappas @KevinRansom jack-pappas Add OSX to OS list for Jenkins CI builds (#2134) c505000
@cartermp @KevinRansom cartermp Minor spelling fixes and more print functions in tutorial (#2130)
* Minor spelling fixes and more print functions

* Remove parenthetical as per @dsyme's feedback
@rojepp @KevinRansom rojepp Speed up checkPathForIllegalChars without a cache. (#2138)
Timing for 100k checks of the path "c:\dev\myproject\utilities\longstring with spaces\filename.fs":
Original ~250ms
This method ~100ms
@vasily-kirichenko @KevinRansom vasily-kirichenko Use Roslyn line numbers only in lexer cache (#2090)
* use Roslyn line numbers only in lexer cache

* fix and refactor getSymbolAtPosition

* fix after merge

* fix out of range exn
@KevinRansom KevinRansom Revert "Add OSX to OS list for Jenkins CI builds (#2134)"
This reverts commit c505000.
@vasily-kirichenko @KevinRansom vasily-kirichenko filter out duplicated parser errors (#2142) 5c1e4a9
@vasily-kirichenko @KevinRansom vasily-kirichenko fixed: Find All References does not search symbol usages in the proje…
…ct(s) the symbol is declared (#2139)
@vasily-kirichenko @KevinRansom vasily-kirichenko Replace pattern matches inside async blocks with AsyncMaybe CE (#2136)
* use asyncMaybe everywhere

* fix compilation

* continue the refactoring

* finish the refactoring

* fixed: AsyncMaybe.Delay was not lazy

* fix tests
@vasily-kirichenko @KevinRansom vasily-kirichenko fix FSharpSymbolUse.IsPrivateToFile for values and functions (#2144) b1dd853
@saul @KevinRansom saul Enable gcAllowVeryLargeObjects on FsiAnyCpu. Fixes #100 (#2135) ac10de1
@saul @KevinRansom saul Improve solution load performance (#2133)
* Reduce number of calls to ComputeSourcesAndFlags, add wait indicator to some long running project tasks

* Project close might throw an exception too, so bundle them both up and re-raise them as an aggregate exception

* Added IVsSolutionBuildManager5 and IVsThreadedWaitDialogFactory to VS mocks to fix tests

* Hide some types/modules that were accidentally added to the public API surface
@vasily-kirichenko @KevinRansom vasily-kirichenko Fix F1 help context (#2151)
* fix Language and Product names in F1 help context

* make "FSharp" a common constant
@vasily-kirichenko @KevinRansom vasily-kirichenko filter out OptionalArgumentAttribute from type highlighting (#2148) 7220094
@vasily-kirichenko @KevinRansom vasily-kirichenko Remove duplicated navigation bar items for properties with getters an…
…d setters (#2146)

* remove duplicated navigation bar items for properties with getters and setters

* fix glyphs for class let bindings

* better navigation bar glyphs

* fix accessibility for members and let bindings
@vladima @KevinRansom vladima [WIP] use Layout as a source data of classification related tasks (#2…

* use Layout as a source data of classification related tasks

* fix indentation

* parse xml doc by hand instead of relying on VS service

* revert back old API

* fix portable build

* fix output in FSI

* fix printing of operators

* update Surface test

* internalize new types and modules

* tag module/namespace as keywords

* fix tooltip formatting for types with hidden representation

* fix separator placement
@vasily-kirichenko @KevinRansom vasily-kirichenko Add glyph to Quick Info tooltip (#2157)
* add glyph to Quick Info tooltip

* fix tests compilation
@dungpa @KevinRansom dungpa Color built-in types as keywords in signature help and quick info (#2…
@dungpa @KevinRansom dungpa Normalize project display names for standalone projects (#2164) 2dc9f6f
@vasily-kirichenko @KevinRansom vasily-kirichenko show Add Open code fix if the unresolved symbol is in the middle of t…
…he long ident (#2166)
@KevinRansom KevinRansom Fix tools dir creation in microbuild 9e4cb09
@vasily-kirichenko @KevinRansom vasily-kirichenko Fix lexer cache (#2158)
* revert "Use Roslyn line numbers only in lexer cache" #2090

* fix OutOfRangeException in getCachedSourceLineData

* fixed: lexer cache does not work at all

* fix finding start line for relexing in getCachedSourceLineData
@vasily-kirichenko @KevinRansom vasily-kirichenko Fix find all references (#2167)
* add glyph for declarations in Find All References result window

* fixed: ColorizationService may return duplicated spans which caused FindReferencesService to crash

* remove #nowarn "1182"

* fixed: FindReferencesService does not work on external symbols
@saul @KevinRansom saul Add colours to FSI output (#2156)
* Add colours to FSI output

* Update test baselines (made whitespace consistent)
@vasily-kirichenko @KevinRansom vasily-kirichenko fix Quick Info and Signature Help XML Doc indentation (#2177)
* fix Quick Info and Signature Help XML Doc indentation

* trim line breaks and empty lines from Quick Info and Signature Help

* refactor addTaggedTextEntry

* rewrite reportTextLines

* fix too aggressive trimming

* normalize spaces

* refactor

* fix tests

* fix heading space in XML Doc

* fix compilation
@vasily-kirichenko @KevinRansom vasily-kirichenko StructureService do not provide guideline for implicit (primary) cons…
…tructor (#2187)
@vasily-kirichenko @KevinRansom vasily-kirichenko Remove duplicates from Navigate To (#2173)
* Navigate To does not remove duplicates

* simplify navigateToSearchResultComparer.GetHashCode
@forki @KevinRansom forki Suggestions for spelling mistakes needs to be filtered much stronger …

* Use EditDistance for threshold

* Don't throw too specific error message

* Suggest more types

* Suggest vals and exns

* Oupsi
@dungpa @KevinRansom dungpa Support multi F# projects (#2185)
* Setup F# projects after opening a solution

* Use built-in SolutionEvents instead of rolling our own version

* Refactor

* Find references should pick up correct referenced projects

* Setup projects in batch on the background
@dungpa @KevinRansom dungpa Use Roslyn dependency graphs (#2188) a0d383f
@liboz @KevinRansom liboz More robust check for isSequential (#2189)
* more robust check for isSequential

* using type inference for the signature

* using even more type inferencing
@dungpa @KevinRansom dungpa Give F# Interactive buffer its own content type (#2192)
* Give F# Interactive buffer its own content type

* Remove dummy classifier
@brettfo @KevinRansom brettfo cleanup Dependencies.swr (#2199) 2a91f41
@saul @KevinRansom saul Highlight structs and use a higher contrast colour scheme in FSI (#2196)
* Highlight structs in FSI.

Closes #2193

* Use Vasily's suggestions for FSI colours as they have better contrast with default colour schemes

* Match UnknownType to type colour so records and DUs are colourised

* Removed ModuleBinding from type colouring - TaggedTextToRoslyn maps this to Property

* Fix the build
@vasily-kirichenko @KevinRansom vasily-kirichenko Fix Structure Service for properties (#2195)
* use ObjectModel's start column as start column for properties guidelines

* fix collapse range for whole property

* fix match clauses guidelines

* remove temporary code

* fix compilation

* remove tracing
@forki @KevinRansom forki We can save a couple of lookups (#2197) 3060db7
@forki @KevinRansom forki fix typo (#2210) 126ff94
@forki @KevinRansom forki fix typo (#2209) 1fb8a75
@forki @KevinRansom forki Suggest Unions and Records if qualified access required (#2203)
* Suggestion union types that require qualified access

* Suggestion record types that require qualified access
@KevinRansom KevinRansom Fix fscorelocation on coreclr when no fsharp.core dll was provided (#…
@forki @KevinRansom forki We should not demangling twice (#2208)
* We should not demangling twice

* map + concat => collect

* Tycons are calculated even if they are not used

* Tycons are calculated even if they are not used

* map + concat => collect
@forki @KevinRansom forki We should allow more access positions (#2205)
* We should allow more access positions

* Show that we can suggest unions in pattern match
@vasily-kirichenko @KevinRansom vasily-kirichenko symbols that have EditorBrowsableAttribute(EditorBrowsableState.Never…
…) attribute applied are not shown in completion (#2206)
@forki @KevinRansom forki fix typo (#2215) 86ea292
@forki @KevinRansom forki Remove some concats and use some indexed (#2216) a91dd03
@forki @KevinRansom forki Reproduce #2219 (#2220) 7a30e8d
@forki @KevinRansom forki sort + rev => sortDescending (#2221) 68cb422
@forki @KevinRansom forki Make distinct ;-) (#2222) 434ebf0
@KevinRansom KevinRansom Coreclr nuget package updates (#2223)
* Fix fscorelocation on coreclr when no fsharp.core dll was provided

* fsi as nuget package

* Make a Separate fsi nuget package - clean up a few coreclr test issues - ensure that microbuild drops signed dll's in the nuget package.
@vasily-kirichenko @KevinRansom vasily-kirichenko Fix completion for double ticked module values (#2212)
* investigation

* fix

* fis IsOpName

* add CompletionProvider.GetChangeAsync

* fix DisplayName for F# properties and methods

* add  FSharpDeclarationListItem.NameInCode and use it in FSharpCompletionProvider.GetChangeAsync to insert backticked names

* fix layout for properties

* fix provided members layout and display name

* revert property layout

* fix property layout
@vasily-kirichenko @KevinRansom vasily-kirichenko add DiagnosticCustomTags.Unnecessary for 1182 (unused var) warning (#…
@forki @KevinRansom forki Don't suggest things when the entered identifier is in scope (#2218)
* Don't suggest things when they are in scope

* Don't suggest things when they are in scope

* Use id as term

* cleanup namespaces

* Proper suggestion of double tick identifiers - fixes #2217

* Do not suggest operators
@forki @KevinRansom forki Fixed roslyn boundings (#2233)
* Show that union ranges are broken - references #2231

* fix test

* Make it the last char

* Fix roslyn boundings
@KevinRansom KevinRansom Ensure that fsharp sdk msi uses correct component guids. (#2243)
* Fix fscorelocation on coreclr when no fsharp.core dll was provided

* Ensure that the installer has the correct component guids for SDK items shipped previously
@brettfo @KevinRansom brettfo remove all vestiges of multiple skus (#2244) 64f19cb
@saul @KevinRansom saul Fix FSharpErrorInfo equality comparer (#2239) 5785cc7
@forki @KevinRansom forki Make breakpoints break again (#2237)
* fix #2238 and #2229

* Seems breakpoints are ordered
@forki @KevinRansom forki Breakpoints should be faster (#2247)
* Use List functions

* Add additional position checks

* We don't need to evaluate unrelated expressions
@vasily-kirichenko @KevinRansom vasily-kirichenko Simplify Name analyzer and code fix (#2226)
* add RemoveQualificationDiagnosticAnalyzer skeleton

* diagnose all symbols as unnecessary

* exclude symbol uses from definition

* add GetVisibleNamespacesAndModulesAtPoint

* return ModuleOrNamespaceRef directly

* call GetVisibleNamespacesAndModulesAtPoint in the analyzer

* the analyzer works

* add Code Fix

* remove plid from code fix title

* use SymbolUse.Symbol.Item to check if it can be resolved

* it works

* fix many bugs

* Fix resources

* fixed: the diagnostic is not returned for single-part plid
@forki @KevinRansom forki Static vs. nonstatic method conflicts are properly reported (#2256)
* Static vs. nonstatic method conflicts are properly reported - fixes #2255

* Fix tests
@forki @KevinRansom forki null check in project system (#2248)
* null check in project system

* Fix hierarchy null exception

@forki @KevinRansom forki fix #2272 (#2273) ad87edb
@vasily-kirichenko @KevinRansom vasily-kirichenko do not inline CLIMutable record field getter in release (#2263) c37ef6e
@dsyme dsyme perf results (#2291) 93fc5c1
@brettfo @dsyme brettfo ignore generated test artifacts (#2285) 7494d6d
@dsyme dsyme integrate
dsyme commented Jan 20, 2017

This PR contains all the latest F# 4.1 work, plus crucially it also replaces the FSharpSource.targets and other project files to be essentially identical to that in http://github.com/Microsoft/visualfsharp.

If we manage to get this integration through it is a huge step towards totally and permanently aligning http://github.com/fsharp/fsharp and http://github.com/Microsoft/visualfsharp (where the latter still contains extra stuff like the Visual F# Tools integration, eventually to be split out)

There are still some small differences (e.g. the Mono version is stuck on using MSBuild 12.0 for the compiler-integrate-reference-resolver) but these could be easily folded back to http://github.com/Microsoft/visualfsharp

dsyme commented Jan 21, 2017 edited

Annoying error on Linux/Mac

		Created directory "obj/Proto/net40/"
		Executing: "/Users/travis/build/fsharp/fsharp/src/fsharp/FSharp.Build-proto/../../../packages/FSharp.Compiler.Tools." --exec "/Users/travis/build/fsharp/fsharp/src/scripts/fssrgen.fsx" "/Users/travis/build/fsharp/fsharp/src/fsharp/FSharp.Build/FSBuild.txt" "obj/Proto/net40/FSBuild.fs"  "obj/Proto/net40/FSBuild.resx" 
		/var/folders/my/m6ynh3bn6tq06h7xr3js0z7r0000gn/T/tmp580cc3fc.tmp: line 1: /Users/travis/build/fsharp/fsharp/src/fsharp/FSharp.Build-proto/../../../packages/FSharp.Compiler.Tools. cannot execute binary file
/Users/travis/build/fsharp/fsharp/src/scripts/fssrgen.targets: error : Command '"/Users/travis/build/fsharp/fsharp/src/fsharp/FSharp.Build-proto/../../../packages/FSharp.Compiler.Tools." --exec "/Users/travis/build/fsharp/fsharp/src/scripts/fssrgen.fsx" "/Users/travis/build/fsharp/fsharp/src/fsharp/FSharp.Build/FSBuild.txt" "obj/Proto/net40/FSBuild.fs"  "obj/Proto/net40/FSBuild.resx" ' exited with code: 126.
	Task "Exec" execution -- FAILED

I thought it was becaue of a missing chmod u+x on fsi.exe but that's now in place and the error is still happening

What's odd is that AFAIK this error doesn't appear in the Ubuntu builds in Microsoft/visualfsharp


@dsyme depending how mono is setup, calling fsi.exe through mono might work:

mono "/Users/travis/build/fsharp/fsharp/src/fsharp/FSharp.Build-proto/../../../packages/FSharp.Compiler.Tools." --exec "/Users/travis/build/fsharp/fsharp/src/scripts/fssrgen.fsx" "/Users/travis/build/fsharp/fsharp/src/fsharp/FSharp.Build/FSBuild.txt" "obj/Proto/net40/FSBuild.fs"  "obj/Proto/net40/FSBuild.resx"

To do a quick check, in before_install.sh, you can change the calls to nuget by removing mono before it, and it should fail rather early in the build.

dsyme commented Jan 22, 2017

@smoothdeveloper It's very odd because sometimes Mono seems to insert itself as the execution engine, and sometimes it doesn't. I thought it always did if the target binary was a .NET binary

@dsyme dsyme referenced this pull request in fsprojects/FsLexYacc Jan 22, 2017

fix targets on OSX #70

@dsyme dsyme closed this Jan 22, 2017
@dsyme dsyme reopened this Jan 22, 2017
nosami commented Jan 24, 2017

I tried to use this PR on OSX and found a couple of problems :-

Microsoft.FSharp.targets is looking for fsc.exe at the wrong location

/Library/Frameworks/Mono.framework/Versions/4.8.0/lib/mono/4.5/Microsoft.FSharp.targets: error : Tool executable '/Users/jason/src/monodevelop/main/build/bin/MSBuild/14.0/fsc.exe' could not be found

I hacked around that and then hit this error :-

		Unhandled Exception:
		System.TypeInitializationException: The type initializer for 'Microsoft.FSharp.Compiler.AbstractIL.IL' threw an exception. ---> System.TypeInitializationException: The type initializer for '<StartupCode$FSharp-Compiler>.$Microsoft.FSharp.Compiler.AbstractIL.IL' threw an exception. ---> System.TypeInitializationException: The type initializer for 'FastGenericComparerTable`1' threw an exception. ---> System.TypeInitializationException: The type initializer for '<StartupCode$FSharp-Core>.$Prim-types' threw an exception. ---> System.Resources.MissingManifestResourceException: Could not find any resources appropriate for the specified culture or the neutral culture.  Make sure "FSCore.resources" was correctly embedded or linked into assembly "FSharp.Core" at compile time, or that all the satellite assemblies required are loadable and fully signed.
		  at System.Resources.ManifestBasedResourceGroveler.HandleResourceStreamMissing (System.String fileName) [0x000ca] in <829ce140006e4cad9124766ee7f51179>:0 
		  at System.Resources.ManifestBasedResourceGroveler.GrovelForResourceSet (System.Globalization.CultureInfo culture, System.Collections.Generic.Dictionary`2[TKey,TValue] localResourceSets, System.Boolean tryParents, System.Boolean createIfNotExists, System.Threading.StackCrawlMark& stackMark) [0x00110] in <829ce140006e4cad9124766ee7f51179>:0 
		  at System.Resources.ResourceManager.InternalGetResourceSet (System.Globalization.CultureInfo requestedCulture, System.Boolean createIfNotExists, System.Boolean tryParents, System.Threading.StackCrawlMark& stackMark) [0x000ad] in <829ce140006e4cad9124766ee7f51179>:0 
		  at System.Resources.ResourceManager.InternalGetResourceSet (System.Globalization.CultureInfo culture, System.Boolean createIfNotExists, System.Boolean tryParents) [0x00002] in <829ce140006e4cad9124766ee7f51179>:0 
		  at System.Resources.ResourceManager.GetString (System.String name, System.Globalization.CultureInfo culture) [0x0006a] in <829ce140006e4cad9124766ee7f51179>:0 
		  at <StartupCode$FSharp-Core>.$Prim-types..cctor () [0x00010] in <5883befbdff9fae1a7450383fbbe8358>:0 

Looking at the Travis log, looks like the Localization target is missing. /home/travis/build/fsharp/fsharp/src/fsharp/FSharp.Core/FSharp.Core.fsproj: warning : Target 'Localize', not found in the project

kvfi approved these changes Jan 26, 2017 View changes
@dsyme dsyme fix tests and integration
dsyme commented Jan 27, 2017

Hallelujah it's green!

dsyme added some commits Jan 27, 2017
@dsyme dsyme update integration
@dsyme dsyme Merge branch 'master' of http://github.com/fsharp/fsharp into integra…
@dsyme dsyme merged commit 499526a into fsharp:master Jan 27, 2017

0 of 2 checks passed

continuous-integration/appveyor/pr Waiting for AppVeyor build to complete
continuous-integration/travis-ci/pr The Travis CI build is in progress
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment