WIP Integrate visualfsharp master #655

Merged
merged 424 commits into from Jan 27, 2017

Projects

None yet
@dsyme
Contributor
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.
9f407d5
@dsyme dsyme fix FSHarp.Compiler project load in VS (#1889) 9b05cf6
@dsyme dsyme Fix glyph for local (#1892)
* fix glyph

* fix glyph

* fix glyph
3851f9d
@vasily-kirichenko @dsyme vasily-kirichenko make init-tools.cmd use default proxy (#1897)
add notes on configuring nuget.exe to use proxy
64ce7c9
@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
0d74692
@dsyme dsyme Fix 1898 (#1900)
* fix tests

* fix-1898

* better diagnostics in env.lst
b94401c
@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
eb3d0f2
@forki @dsyme forki Emit special warning when = is used and user might want to use <- (#1…
…115)

* 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
0f841b8
@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
9971040
@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
7d32229
@dungpa @dsyme dungpa Enable zooming in F# Interactive window (#1914)
Address #1840.
b88e1c5
@dsyme dsyme Fix "ci_part1" tests on master (#1931)
* Update Tests.LanguageService.Completion.fs
30d197e
@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
4b8aafd
@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
2068fb5
@rojepp @dsyme rojepp Handle cancellation of AddProjectItemDlg (#1936)
Fixes #1768
41e8a5d
@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
12213ce
@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 (#…
…1945)
037bd0d
@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
50e7a82
@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
b975863
@forki @dsyme forki Fix SignatureHelpProviderTests (#1949)
* Fix SignatureHelpProviderTests

* Fix SignatureHelpProviderTests
1568b24
@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
61b6a5c
@brettfo brettfo update vsix package authoring to use the latest tools (#1903)
Update vsix generation to use latest tools.
2caa428
@dsyme dsyme Fix build (#1967)
Build was failing, I think this is the right fix
8f81371
dsyme fix build for rc2 a6ef69b
dsyme Revert "fix build for rc2"
This reverts commit a6ef69b.
7f77e4e
@brettfo brettfo Revert "update vsix package authoring to use the latest tools" (#1970)
This reverts commit 24de4a9350bba475ccc30e6104124a62baa164c2.
7acb9d1
@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
9e488a4
@vasily-kirichenko vasily-kirichenko implement FindReferencesService cdb64cf
@dungpa dungpa Try to find previous non-empty line for correct indentation
Fix #1980.
9984b9c
@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 …
…file
80f33c7
@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
00d0c1c
@vasily-kirichenko vasily-kirichenko add signature files support to Navigation Bar a2f7870
@vasily-kirichenko vasily-kirichenko one file -> many Documents
fix FSharpSymbol.IsPrivateToFile
7938570
@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)
b4e7eb5
@vasily-kirichenko @KevinRansom vasily-kirichenko warp QuickInfo text (#1981) 3b01766
@KevinRansom KevinRansom Merge branch 'organize' of https://github.com/cloudRoutine/visualfsharp
… into cloudRoutine-organize
3a66f1b
@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.
573204f
@dungpa @KevinRansom dungpa Do not try open FSI window when querying debugger states (#1983)
Fix #1972.
8ae6387
@KevinRansom KevinRansom Merge branch 'roslyn-tooltips' of https://github.com/cartermp/visualf…
…sharp into cartermp-roslyn-tooltips
8475555
@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
949682b
@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
0fe9edd
@KevinRansom KevinRansom Merge branch 'indentation' of https://github.com/dungpa/visualfsharp
…into dungpa-indentation
cab8c4f
@KevinRansom KevinRansom Merge branch 'dungpa-indentation' fe7f859
@vasily-kirichenko vasily-kirichenko Merge branch 'master' into navigate-to
Conflicts:
	src/fsharp/vs/ServiceNavigation.fs
1e5dab5
@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
216fc1e
@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
3f3e984
@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
3925d98
@forki @KevinRansom forki Improve error reporting: override method does not match abstract memb…
…er - references #1430 (#1950)
b4901a5
@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
08cb87f
@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
07fec04
@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
2a2d876
@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
3041cd8
@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
d11d86c
@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
aef573e
@cartermp @KevinRansom cartermp Update Tutorial Script (#2122)
* Update Tutorial Script

* Feedback and add more print statements
68d2f08
@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
06640a5
@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
b5bf291
@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
a7697d6
@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
95fc0b3
@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
bca9f61
@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
ee84eb7
@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
f2748ff
@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
7428b95
@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
9b1cee6
@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.
6b25b6f
@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
74a1d42
@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
1d5962e
@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
c7cf40b
@KevinRansom KevinRansom Revert "Add OSX to OS list for Jenkins CI builds (#2134)"
This reverts commit c505000.
901923e
@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)
afb7e94
@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
39dc63f
@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
4cf43f3
@vasily-kirichenko @KevinRansom vasily-kirichenko Fix F1 help context (#2151)
* fix Language and Product names in F1 help context

* make "FSharp" a common constant
954a3e1
@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
a24a560
@vladima @KevinRansom vladima [WIP] use Layout as a source data of classification related tasks (#2…
…070)

* 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
ed948ab
@vasily-kirichenko @KevinRansom vasily-kirichenko Add glyph to Quick Info tooltip (#2157)
* add glyph to Quick Info tooltip

* fix tests compilation
43dc891
@dungpa @KevinRansom dungpa Color built-in types as keywords in signature help and quick info (#2…
…162)
b3f6501
@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)
f15c15d
@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
c2821eb
@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
f8e579f
@saul @KevinRansom saul Add colours to FSI output (#2156)
* Add colours to FSI output

* Update test baselines (made whitespace consistent)
e21a76f
@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
979e9d4
@vasily-kirichenko @KevinRansom vasily-kirichenko StructureService do not provide guideline for implicit (primary) cons…
…tructor (#2187)
ef7177d
@vasily-kirichenko @KevinRansom vasily-kirichenko Remove duplicates from Navigate To (#2173)
* Navigate To does not remove duplicates

* simplify navigateToSearchResultComparer.GetHashCode
a0570e2
@forki @KevinRansom forki Suggestions for spelling mistakes needs to be filtered much stronger …
…(#2175)

* Use EditDistance for threshold

* Don't throw too specific error message

* Suggest more types

* Suggest vals and exns

* Oupsi
9e02e7f
@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
e110833
@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
f8103bb
@dungpa @KevinRansom dungpa Give F# Interactive buffer its own content type (#2192)
* Give F# Interactive buffer its own content type

* Remove dummy classifier
b02cc36
@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
de2a06e
@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
6b4d0a4
@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
a54abbf
@KevinRansom KevinRansom Fix fscorelocation on coreclr when no fsharp.core dll was provided (#…
…2213)
9f3f779
@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
c1249ec
@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
669d73d
@vasily-kirichenko @KevinRansom vasily-kirichenko symbols that have EditorBrowsableAttribute(EditorBrowsableState.Never…
…) attribute applied are not shown in completion (#2206)
f3b72d6
@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.
829eedd
@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
7ff8941
@vasily-kirichenko @KevinRansom vasily-kirichenko add DiagnosticCustomTags.Unnecessary for 1182 (unused var) warning (#…
…2225)
d1d9bab
@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
7ee4c7f
@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
48e078e
@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
8edf7e0
@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
1c78f6a
@forki @KevinRansom forki Breakpoints should be faster (#2247)
* Use List functions

* Add additional position checks

* We don't need to evaluate unrelated expressions
24e3547
@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
f50a2dd
@forki @KevinRansom forki Static vs. nonstatic method conflicts are properly reported (#2256)
* Static vs. nonstatic method conflicts are properly reported - fixes #2255

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

* Fix hierarchy null exception

Conflicts:
	vsintegration/src/FSharp.ProjectSystem.Base/Project/ProjectReferenceNode.cs
e432d6b
@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
89cec79
@dsyme
Contributor
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
Contributor
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.4.0.1.19/tools/fsi.exe" --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.4.0.1.19/tools/fsi.exe: 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.4.0.1.19/tools/fsi.exe" --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

@smoothdeveloper
Contributor

@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.4.0.1.19/tools/fsi.exe" --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"
@smoothdeveloper
Contributor

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
Contributor
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
Merged

fix targets on OSX #70

@dsyme dsyme closed this Jan 22, 2017
@dsyme dsyme reopened this Jan 22, 2017
@nosami
Member
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
kvfi approved these changes Jan 26, 2017 View changes
@dsyme dsyme fix tests and integration
38983e0
@dsyme
Contributor
dsyme commented Jan 27, 2017

Hallelujah it's green!

dsyme added some commits Jan 27, 2017
@dsyme dsyme update integration
a11c0ea
@dsyme dsyme Merge branch 'master' of http://github.com/fsharp/fsharp into integra…
…te-887
f6a6df3
@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
Details
continuous-integration/travis-ci/pr The Travis CI build is in progress
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment