Giter Club home page Giter Club logo

ionide-vscode-fsharp's Introduction

Enhanced F# Language Features for Visual Studio Code

Part of the Ionide plugin suite. Read detailed documentation at Ionide docs page.

Version Installs Rating open collective backers open collective sponsors Open in Gitpod

You can support Ionide development on Open Collective.

Open Collective

Description

Ionide-VSCode is a VSCode plugin that turns VSCode into a fully-fledged IDE for F# development.

The LSP that powers language features is FSAutoComplete.

The library that powers project and script loading is proj-info

You find a version of this plugin pre-packaged with the FOSS debugger from Samsung here

Requirements

Features

  • Syntax highlighting
  • Auto completions
  • Error highlighting, error list, and quick fixes based on errors
  • Tooltips
  • Method parameter hints
  • Go to Definition
  • Peek Definition
  • Find all references
  • Highlighting usages
  • Rename
  • Show symbols in file
  • Find symbol in workspace
  • Show signature in status bar
  • Show signature as CodeLens / LineLens
  • Go to MSDN help
  • Add open NAMESPACE for symbol
  • Match case generator
  • Go to #load reference
  • Generate comment for the symbol
  • Integration with F# Interactive
  • Integration with Forge (Project scaffolding and modification)
  • Integration with FSharpLint (additional hints and quick fixes)
  • Integration with MSBuild (Build, Rebuild, Clean project)
  • Solution / project explorer
  • And more...

How to Contribute

Ths project is hosted on GitHub where you can report issues, participate in discussions, fork the project and submit pull requests.

Building and Running

See these instructions for setting up your local dev environment.

Guidelines

The Contribution Guide outlines the process and guidelines for getting a patch merged. By making expectations and process explicit, I hope it will make it easier for you to contribute!

Releasing

  • Update RELEASE_NOTES.md with the new version number, date (DD.MM.YYYY format please), and brief release notes.
  • Push the change to the main branch
  • A maintainer can run the release workflow from Github's actions page at that point

Imposter Syndrome Disclaimer

I want your help. No really, I do.

There might be a little voice inside that tells you you're not ready; that you need to do one more tutorial, or learn another framework, or write a few more blog posts before you can help me with this project.

I assure you, that's not the case.

And you don't just have to write code. You can help out by writing documentation, tests, or even by giving feedback about this work. (And yes, that includes giving feedback about the contribution guidelines.)

Thank you for contributing!

Code of Conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

Copyright

The library is available under MIT license, which allows modification and redistribution for both commercial and non-commercial purposes.

Our Sponsors

Ionide couldn't be created without the support of Lambda Factory. If your company would be interested in supporting development of Ionide, or acquiring commercial support send us an email - [email protected].

You can also support Ionide development on Open Collective.

Partners

drawing

Sponsors

Become a sponsor and get your logo on our README on Github, description in the VSCode marketplace and on ionide.io with a link to your site.

ionide-vscode-fsharp's People

Contributors

adamchester avatar alfonsogarciacaro avatar baronfel avatar booksbaum avatar cloudroutine avatar dawedawe avatar denskh avatar dsyme avatar enricosada avatar farlee2121 avatar fbehrens avatar forki avatar horacegonzalez avatar kerams avatar kirill-gerasimenko avatar kojo12228 avatar krzysztof-cieslak avatar mangelmaxime avatar nojaf avatar numpsy avatar oxxa avatar rojepp avatar sasmithjr avatar tboby avatar theangrybyrd avatar thisfunctionaltom avatar titaye avatar vain0x avatar vasily-kirichenko avatar vbfox avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ionide-vscode-fsharp's Issues

FAKE Build Not Running in VS Code on Mac

When I try to run a FAKE build in VS Code on the Mac, I seem to get a No handler found for the command 'fake.buildDefault message.

Not sure what I'm missing (or I'm just dumb ๐Ÿ˜›), but the screenshot should show the build.sh and build.fsx files. If anything else is needed, just let me know.

VS Code

mono-sgen often uses 100% CPU

My F# solution which consists of 6 projects pretty much always pegs a CPU core permanently at 100%. Everything still works OK but I eventually land up having to kill mono-sgen and restart VS Code just because of the added CPU overhead affecting other work.

OS X El Capitan with latest VS Code and Ionide extension.

  • Observing StdOut in the developer tools window there is no erroneous activity. Entries are added at hover, file change etc - as expected. No output flood as one would expect with high CPU.
  • I am not using FSI at all.

What other information can I provide to help get to the root of this?

screen shot 2016-04-20 at 8 32 34 am

mono --version
Mono JIT compiler version 4.4.0 (mono-4.4.0-branch/f8474c4 Thu Mar 10 12:17:12 EST 2016)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
    TLS:           normal
    SIGSEGV:       altstack
    Notification:  kqueue
    Architecture:  x86
    Disabled:      none
    Misc:          softdebug
    LLVM:          yes(3.6.0svn-mono-master/a173357)
    GC:            sgen

Extension path should be case-sensitive for unix systems

Running extension commands fails on Unix, because in my case VSCode uses path /home/janno/.vscode/extensions/Ionide.ionide-fsharp when the extension is actually located at /home/janno/.vscode/extensions/Ionide.Ionide-fsharp.

Also, it seems that executable name is also wrong let path = (VSCode.getPluginPath "Ionide.ionide-fsharp") + "/bin/fsautocomplete.suave.exe". In my bin catalog there's file FsAutoComplete.Suave.exe instead.

FSI Improvements

Implement more FSI Commands :

  • Interrupt
  • Reset

stop blocking the GUI thread
while true do printf "bye" will crash vscode

Intellisense in comments

If you're inside a (* *) code you wouldn't expect intellisense or autocomplete to happen, but it does - this can be frustrating as you have to keep escaping out.

Tabs instead of Spaces when VSCode is set to Auto

Not sure if this is a VSCode issue of something that can be fixed in ionide. Hopefully it can be solved in ionide.

When I work on a .fs or .fsx file (I guess others too) the editor inserts Tabs instead of spaces which causes compiler errors:

TABs are not allowed in F# code unless the #indent "OFF" option is used

I have VSCode set to:

"editor.insertSpaces": "auto",

Which says If set to "auto", the value will be guessed when a file is opened. but that doesn't seem to changing to spaces for fsharp.

Is there a way to get VSCode to insert spaces without using Workspace settings (I don't need a Workspace for every FSX) or changing the User Settings?

Include FSI in package

Getting an exception when I try to eval let x = ""

[Plugin Host] This socket is closed.
workbench.main.js:1602 [Plugin Host] Object {}
workbench.main.js:1602 [Plugin Host] {"Kind":"error","Data":"File 'C:\\3' not parsed"}
workbench.main.js:1602 [Plugin Host] unhandled rejected promise Object {}(anonymous function) @ workbench.main.js:1602emitTwo @ events.js:87emit @ events.js:172handleMessage @ internal/child_process.js:685channel.onread @ internal/child_process.js:440
workbench.main.js:1626 errore.onUnexpectedError @ workbench.main.js:1626(anonymous function) @ workbench.main.js:1626e.onUnexpectedError @ workbench.main.js:1548u @ workbench.main.js:1547e.onUnexpectedPluginHostError @ workbench.main.js:1604e.handle @ workbench.main.js:1588a @ workbench.main.js:1576h.handle @ workbench.main.js:1576(anonymous function) @ workbench.main.js:1602(anonymous function) @ workbench.main.js:1602emitTwo @ events.js:87emit @ events.js:172handleMessage @ internal/child_process.js:685channel.onread @ internal/child_process.js:440
workbench.main.js:1602 [Plugin Host] [E] 2015-11-18T21:26:55.9116471Z: request failed [Suave.Web.defaultErrorHandler] exn:
Microsoft.FSharp.Compiler.ErrorLogger+WrappedError: Exception of type 'Microsoft.FSharp.Compiler.ErrorLogger+WrappedError' was thrown.
   at Microsoft.FSharp.Compiler.Lexhelp.reusingLexbufForParsing[a](LexBuffer`1 lexbuf, FSharpFunc`2 f)
   at Microsoft.FSharp.Compiler.Lexhelp.usingLexbufForParsing[a](LexBuffer`1 lexbuf, String filename, FSharpFunc`2 f)
   at Microsoft.FSharp.Compiler.SourceCodeServices.Parser.ParseOneFile(String source, Boolean matchBracesOnly, Boolean reportErrors, String mainInputFileName, FSharpList`1 projectSourceFiles, TcConfig tcConfig)
   at <StartupCode$FSharp-Compiler-Service>[email protected](CancellationToken _ct)
   at <StartupCode$FSharp-Compiler-Service>[email protected](Unit unitVar0)

Extension is looking for binaries in the wrong place.

I just installed Visual Studio Code, F#, Mono and this extension on Linux, and when I open a .fsx file in Code, I get the following error in the console:

[Plugin Host] Cannot open assembly '/home/nikon/.vscode/extensions/Ionide.Ionide-fsharp/bin/FsAutoComplete.Suave.exe': No such file or directory. (workbench.main.js:67)

The actual path the file FsAutoComplete.Suave.exe can be found is:

/home/nikon/.vscode/extensions/Ionide.Ionide-fsharp-1.1.0/bin/FsAutoComplete.Suave.exe

As you can see, the real path contains the version of the extension.

Versions:

  • VS Code: 0.10.6
  • Ionide F# Extension: 1.1.0
  • OS: Xubuntu 15.10 32bit

DOS line endings in automated build.sh

I am unsure if it is the right place to repport that problem but I just noticed that using "new project" creates a build.sh that contains DOS line endings (^M wich can be seen using "cat -v build.sh") making it unable to build on ubuntu.
"fromdos build.sh" solves the problem easily but it would be better if it was fixed at the source.

Nestor

P.S. I am new to F# and struggling to understand fake but so far ionide for vscode has been a pleasure to use :)

No handler found for the command: 'webpreview.Show'

If I start the command "Ionide: Show Web View" I get the following error:
error

I tried to add onCommand:webpreview.Show into the file <userfolder>\.vscode-insiders\extensions\Ionide.Ionide-fsharp-1.3.0\package.json
Now I do not get any error but the window is still not shown. I guess something else is missing.

I'm not sure for what the activationEvents part in the packages.json is for but in case all commands need to be there then ff.Show and webpreview.Refresh are missing, too.

I tried it with vscode 0.10.8 and 0.10.10-insider both with ionide-fsharp 1.3.0

Cannot read property 'document' of null

Issue Id: b69492db-3cc4-2c53-d056-ead1327be4a4

Versions

  • 1.0.0-insider
  • fa6d0f0
    Stack
    TypeError: Cannot read property 'document' of null
    at e.Object.defineProperty.get as document
    at QuickInfo__handle_$ (\Ionide.Ionide-fsharp-1.6.0\fsharp.js:3185:34)
    at null._onTimeout (\Ionide.Ionide-fsharp-1.6.0\fsharp.js:3180:14)
    at Timer.listOnTimeout (timers.js:89:15)

Reported via VSCode telemetry. See microsoft/vscode#5480

Backslashes mixed with quotes in @-escaped strings break syntax highlighting

Repro:

let foo = @"""\""" 

This represents the string "" (including quotes). It looks like Ionide interprets the backslash as escaping the closing quote, and then the subsequent pair of quotes as a second escaped quote, so the full quoted string is never closed. Subsequent lines of code are interpreted by ionide as part of the string.

Syntax highlighting consistency

Types/modules/vars all have inconsistent appearance depending on where they are in the code. It makes the highlighting counterproductive.

Each FAKE build creates a new output window

I'm using the Ionide FAKE build integration. On each use, a new FAKE output window is created (see below).

fake_issue

Is this a feature? I would expect that subsequent usages would simply log the text to the existing output window.

Thanks!

Backtick methods / types are missing the backticks after selecting from intellisense

I'm testing here the Azure Type Provider but I imagine that this problem isn't just TPs. If you select e.g. a property from the intellisense pop-up, it is entered into the code editor but without backticks. You have to manually enter them yourself, otherwise the code does not compile.

In the example below, I'm trying to select the SampleFiles/ property.

1

You'll see it is entered in the code editor without backticks. When I hit dot, I get incorrect suggestions.

2

If I manually enter backticks around the symbol, it all works again.

3

TypeError: Cannot read property 'document' of null

our error telemetry reports this

TypeError: Cannot read property 'document' of null 
at e.Object.defineProperty.get [as document] (/out/vs/workbench/node/pluginHostProcess.js:19:10563) 
at QuickInfo__handle_$ (/Ionide.Ionide-fsharp-1.6.0/fsharp.js:3185:34) 
at null._onTimeout (/Ionide.Ionide-fsharp-1.6.0/fsharp.js:3180:14) 
at Timer.listOnTimeout (timers.js:89:15) 

Send selection on Windows

I get the following error when i try to send to FSI. I did add "C:\Program Files (x86)\Microsoft SDKs\F#\4.0\Framework\v4.0" to the path variable.

[E] 2015-11-24T08:58:18.3874669Z: request failed [Suave.Web.defaultErrorHandler] exn:
Microsoft.FSharp.Compiler.ErrorLogger+WrappedError: Exception of type 'Microsoft.FSharp.Compiler.ErrorLogger+WrappedError' was thrown.
at Microsoft.FSharp.Compiler.Lexhelp.reusingLexbufForParsing[a](LexBuffer1 lexbuf, FSharpFunc2 f)
at Microsoft.FSharp.Compiler.Lexhelp.usingLexbufForParsing[a](LexBuffer1 lexbuf, String filename, FSharpFunc2 f)
at Microsoft.FSharp.Compiler.SourceCodeServices.Parser.ParseOneFile(String source, Boolean matchBracesOnly, Boolean reportErrors, String mainInputFileName, FSharpList`1 projectSourceFiles, TcConfig tcConfig)
at <StartupCode$FSharp-Compiler-Service>.$[email protected](CancellationToken _ct)
at <StartupCode$FSharp-Compiler-Service>.$[email protected](Unit unitVar0)

SignatureHelpProvider not working.

I'm going crazy and can't solve it. Both SignatureHelpProvider and DocumentHiglightProvider are not working - i.e. no activity is shown in VS Code UI after results are returned from backend services.

From logic point of view, everything looks right - providers functions are invoked, they call FSAC, result is returned. Promise logic is exactly the same as for other providers ( working Autocomplete vs not-working SignatureHelp and Higlight )

Here is example of result object I return for signatures:
image

Run *.fsx script

Please, consider adding a command to run *.fsx script just from editor, it will be really handy

TypeError: Cannot read property 'document' of null

TypeError: Cannot read property 'document' of null 
at Linter__handlerOpen$ (/Ionide.Ionide-fsharp-1.6.0/fsharp.js:2046:37) 
at _f (/Ionide.Ionide-fsharp-1.6.0/fsharp.js:1974:14) 
at e.invoke (/out/vs/workbench/node/pluginHostProcess.js:7:14035) 
at e.fire (/out/vs/workbench/node/pluginHostProcess.js:7:15488) 
at e._acceptActiveEditorAndVisibleEditors (/out/vs/workbench/node/pluginHostProcess.js:19:8107) 
at t.e.handle (/out/vs/workbench/node/pluginHostProcess.js:15:12835) 
at c (/out/vs/workbench/node/pluginHostProcess.js:11:16222) 
at h (/out/vs/workbench/node/pluginHostProcess.js:11:16882) 
at doNTCallback0 (node.js:420:9) 
at process._tickCallback (node.js:349:13) 

Send 'silentCd' and # line/file to support current-directory-is-script

When sending interactions to F# interactive, it's normal to send # silentCd, # dbgbreak and # line filename

This gives the same effect as F# Interactive in Visual Studio where errors report their file/line w.r.t the source document, and relative paths are interpreted w.r.t. the containing folder of the source document too, see this code: https://github.com/Microsoft/visualfsharp/blob/2d413fb940aa1677688454c50b8ec05cd3b6f78f/vsintegration/src/vs/FsPkgs/FSharp.VS.FSI/fsiSessionToolWindow.fs#L556

No error message in the fsi window

I seem not unable to get error messages in the fsi window. For example,

let input = File.ReadAllText("Playground/input/Day1.tx")

Sending the code to fsi results no result, which should be telling me that the file "Day1.tx" doesn't exist.

Can't BuildPackage on Linux

build.fsx is looking for npm in /usr/local/bin/ but in my machine npm in in /usr/bin/ (and it's supposed to be there in most distros if you install npm via the package managar)

Multiple backtick properties on the same line kills intellisense.

This code works fine:

let x = [ foo.``My Backtick Property``
          foo.``My Other Backtick Property`` ]

but if you try to put the code on one line (separated with ;), intellisense dies: -

let x = [ foo.``My Backtick Property``; foo.``My Other Backtick Property`` ]

autocompletion not working

Autocompletion is not working from last update, I am running mono on mac (Darwin Kernel Version 15.3.0: Thu Dec 10 18:40:58 PST 2015; root:xnu-3248.30.4~1/RELEASE_X86_64 x86_64) and Ionide 1.6.9:
[Extension Host] error
threadService.ts:207 [Extension Host] [E] 2016-05-18T23:35:25.4573940Z: request failed [Suave.Web.defaultErrorHandler] exn:
System.TypeInitializationException: The type initializer for '<StartupCode$FsAutoComplete-Core>.$Environment' threw an exception. ---> System.IO.DirectoryNotFoundException: Directory 'C:\Program Files (x86)/Reference Assemblies\Microsoft\Framework.NETFramework' not found.
at System.IO.Directory.ValidateDirectoryListing (System.String path, System.String searchPattern, System.Boolean& stop) <0x19fca90 + 0x001f8> in :0
at System.IO.Directory+c__Iterator0.MoveNext () <0x1b5be60 + 0x00086> in :0
at System.Collections.Generic.List1[T]..ctor (IEnumerable1 collection) <0x17b6270 + 0x0020f> in :0
at Microsoft.FSharp.Collections.SeqModule.ToArray[T](IEnumerable1 source) <0x3aa2bf8 + 0x001f3> in <filename unknown>:0 at Microsoft.FSharp.Collections.SeqModule+Sort@1501[T].Invoke (Microsoft.FSharp.Core.Unit unitVar0) <0x4cf6068 + 0x0002b> in <filename unknown>:0 at Microsoft.FSharp.Collections.SeqModule+mkDelayedSeq@880[T].Invoke (Microsoft.FSharp.Core.Unit unitVar0) <0x4cf6028 + 0x0001b> in <filename unknown>:0 at Microsoft.FSharp.Core.CompilerServices.RuntimeHelpers+mkSeq@589[TResult].System-Collections-Generic-IEnumerable1-GetEnumerator () <0x3aa3060 + 0x0001b> in :0
at System.Collections.Generic.List1[T]..ctor (IEnumerable1 collection) <0x17b6270 + 0x001bc> in :0
at Microsoft.FSharp.Collections.SeqModule.ToArray[T] (IEnumerable`1 source) <0x3aa2bf8 + 0x001f3> in :0
at <StartupCode$FsAutoComplete-Core>.$Environment..cctor () <0x4cf5000 + 0x00a67> in :0
--- End of inner exception stack trace ---
at FsAutoComplete.FSharpCompilerServiceChecker.ensureCorrectFSharpCore (System.String[] options) <0x4cf4ba8 + 0x00047> in :0
at <StartupCode$FsAutoComplete-Core>.$CompilerServiceInterface+GetProjectOptionsFromScript@162-1.Invoke (Microsoft.FSharp.Compiler.SourceCodeServices.FSharpProjectOptions _arg1) <0x4cf4a18 + 0x00027> in :0
at Microsoft.FSharp.Control.AsyncBuilderImpl+args@835-1[a,b].Invoke (a a) <0x3aca068 + 0x0007a> in :0

evaluation failure on vscode 0.10.3

Installed the latest f# package and afaik Code is fully up to date. Sending the snippet below yields this message:

Running the contributed command:'fsi.SendSelection' failed.

let l = [1; 2; 3]
l

Help->About:

Version 0.10.3
Commit 783ecf841a2b21edca6d86853670cae89b4c244f
Date 2015-11-26T14:06:31.538Z
Shell 0.34.1
Renderer 45.0.2454.85
Node 4.1.1

[edit: running on windows 10 fall update]

Autocomplete does not work in v1.2.1

My environment:

  • Windows 10 64-bit
  • Visual Studio 2015 installed

I did the following:

  1. Fresh install Visual Studio Code
  2. Ctrl + Shift + P to install ionide.fsharp
  3. Restart VS Code
  4. Open a new .fsx file

Autocomplete doesn't work so I navigate to \.vscode\extensions\Ionide.Ionide-fsharp-1.2.1\bin and do some digging myself. I found that when I tried to run FsAutoComplete.Suave.exe, it gave the following exception:

Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly 'FSharp.Core, Version=4.3.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. Strong name validation failed. (Exception from HRESULT: 0x8013141A) ---> System.Security.SecurityException: Strong name validation failed. (Exception from HRESULT: 0x8013141A)
   --- End of inner exception stack trace ---
   at System.ModuleHandle.ResolveType(RuntimeModule module, Int32 typeToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount, ObjectHandleOnStack type)
   at System.ModuleHandle.ResolveTypeHandleInternal(RuntimeModule module, Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
   at System.Reflection.RuntimeModule.ResolveType(Int32 metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
   at System.Reflection.CustomAttribute.FilterCustomAttributeRecord(CustomAttributeRecord caRecord, MetadataImport scope, Assembly& lastAptcaOkAssembly, RuntimeModule decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, Object[] attributes, IList derivedAttributes, RuntimeType& attributeType, IRuntimeMethodInfo& ctor, Boolean& ctorHasParameters, Boolean& isVarArg)
   at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes, Boolean isDecoratedTargetSecurityTransparent)
   at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeAssembly assembly, RuntimeType caType)
   at System.Attribute.GetCustomAttributes(Assembly element, Type attributeType, Boolean inherit)
   at System.AppDomain.GetTargetFrameworkName()

Not sure if this is a bug or some configuration issue on my side.

Extensions not working due to folder names of extensions with version number.

It seems that with the latest updates to VSCode , extensions are installed with version numbers in the folder name,

such as Ionide.Ionide-fsharp-1.1.0
and this causes problem with the plugins not being able to find the path to the extension files..

The autocompletions and paket features only work when there are no version numbers in the extension folder name..

I was having problems in both windows 10 and linux(mint), and renaming the folders fixed these problems...

The problem is due to this part of the code in LanguageService.fs (line 112) :

let start () =
        let path = (VSCode.getPluginPath "Ionide.Ionide-fsharp") + "/bin/FsAutoComplete.Suave.exe"

Similarly for paket:

if Process.isWin () then
            (VSCode.getPluginPath "Ionide.Ionide-Paket") + @"\bin\paket.exe"
        else
            (VSCode.getPluginPath "Ionide.Ionide-Paket") + @"/bin/paket.exe"

Some features not working on OSX

I'm on VS Code 0.10.3 on OSX. Some features of the extension do work:

  • Intellisense
  • Quickinfo

But other features do not work:

  • Syntax highlighting
  • Any kind of commands, e.g. fsi (or at least I can't find them?)
  • No settings exposed

Given that non-trivial stuff like intellisense is working, clearly the install was "successful," but maybe some config to wire up other stuff is missing? Is there a log I can look at or tips on how to debug? Or maybe these features are simply not yet supported on OSX?

Upgrade to MSBuild 14

Currently MSBuild 12 is a dependency for the Ionide for VS Code. Because of this I had troubles setting up Ionide as I had VS 2015 U2 only installed with comes (seemingly) with MSBuild 14, therefore the autocomplete does not work. The package descriptons page (https://marketplace.visualstudio.com/items?itemName=Ionide.Ionide-fsharp) states that it is enough to have VS 2015 to use Ionide, which, for me, seems not true.

So i'm suggesting to upgrade to MSBuild 14 to go around this issue (or clearify on the package descriptions page).

Does not build on Linux/Mono

I'm getting a compile error when running build.sh on Linux with Mono 4.2:

A namespace and a module named 'Ionide.VSCode' both occur in two parts of this assembly

If I remove the Mono specific stuff in build.fsx it works fine. Any reason why a separate build process is needed?

Suave operator `>=>` is parsed as 3 operators '>' '=' '>'

It matters if using a ligature capable font like "Fira Code" with VS Code settings:

{
    "editor.fontFamily": "Fira Code",
    "editor.fontLigatures": true    
}

It matters, because it
a) it is displayed differently from other operarors like ->, =>, >=
b) it is displayed differently in code in comments

I was able to fix it locally by adding to syntaxes/fsharp.json the group >=> to "keyword.other.fsharp" patterns (on line 191) before groups > and =, but probably a more general fix should be considered.

PS. I'm not sure what it does, but on line 459 (same file) you have a repeating key "1" in section double_tick/patterns

Writing code directly to RELP (F# Interactive)

It might be very helpful to have full ability to write code directly in REPL window and have instant feedback. I do not want to always write something into file to send it into repl.

I would like experiment in CLI and have benefits of VS code in REPL (autocomplete, docs etc.).

Fake error?

The following F# codes can be compiled correctly, but ionide reports fake error.

2016-03-04 16 08 55

And it seems that ionide doesn't know that System.Diagnostics contains Stopwatch.

2016-03-04 16 10 24

But fsharpi can do it correctly.

2016-03-04 16 12 22

I use the latest ionide(v1.3.0) in VSCode.

Can't get it working

I just installed Ionide-fsharp package and can't get it working. It doesn't work with single files - it seems instead it uses built-in syntax highlighter, same for projects - I made test project with yo fsharp and opened folder with vscode with 0 success. Am I doing something wrong?

Ionide fails to register if no project open

Currently, ionide fails to register with VSCode on OSX if there is no current project open.

To Reproduce:

  1. Install a fresh copy of VSCode.
  2. Immediately installe ionide via ext install ionide-fsharp.
  3. Restart
  4. Attempt fsi start. You should get a message that nothing is registered to handle fsi.start. If you open the developer tools, you'll see console errors about path expects a string.

Paket fails during build

When I call FAKE Build from within VS Code it fails with

Paket failed with:
    Fetching the git cache at C:\Users\user\.paket\git\db\ionide-vscode-helpers failed.
Message: Could not run "git clone [email protected]:ionide/ionide-vscode-helpers.git".
Error: 
Cloning into 'ionide-vscode-helpers'...
Permission denied (publickey).

No intellisense on OSX

Hi!
I'm facing trouble after mono reinstallation on OSX 10.11.5, intellisense just stopped to work after mono update. Ionide-sharp version is 1.7.0, vscode version is 1.1.1
Mono & fsharpi are in path:
Daniils-iMac:~ danslapman$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
Daniils-iMac:~ danslapman$ which fsharpi
/usr/local/bin/fsharpi
Daniils-iMac:~ danslapman$ which mono
/usr/local/bin/mono
I also tried to reinstall both the extension in vscode two times, it didn't help.
How to figure out the root of the issue?

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

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

Recommend Topics

  • javascript

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

  • web

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

  • server

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

  • Machine learning

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

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.