By András Jankó on Monday, September 29, 2014 — 0 comments

CloudSharper released Core team

The highlight of this release is tooltips for F# code. Be patient when loading a larger projects, tooltips appear when the FSharp Compiler Services has loaded all the code files.

Full change log:

  • Adding tooltips for F# in code editor.
  • #548: Style fixes with browse panel, toolbar and workspace treeviews.
  • Updating to WebSharper Map<_,_> and Set<_> types are now usable in RPC arguments and results.

Happy coding!

By Loïc Denuzière on Wednesday, September 24, 2014 — 2 comments

CloudSharper released Core team

The main highlight of this release is the switch from plain FSharp.Compiler.Service to the higher-level FSharp.CompilerBinding. This will allow us to benefit from more community-developed enhancements, and to develop improvements to the code service more quickly. A few bugs have already been fixed thanks to this transition, and you can expect hover tooltips, go to definition and more soon!

Full change log:

  • #281: Close affected tabs when running rmdir
  • #300: Always fail as expected when trying to run a program that doesn't exist from the console
  • #543: Auto-close and match brackets in the editor
  • #544: Fix upload file window style
  • #546: Reassign tab when the file's directory is renamed
  • #547: Fix persisting "Loading custom editors..." message in some cases
  • #551: Correctly reflect saved changes to a file in the code service for another file of the same project
  • #552: Fix updating the completion list when typing extra letters

Happy coding!

By Loïc Denuzière on Friday, September 19, 2014 — 0 comments

CloudSharper Core team

We just released CloudSharper for your enjoyment. The main new feature is a dockable Browse window, allowing you to work on a web or mobile application and seeing the result directly next to your code.

You can access it by:

  • Pressing Ctrl+Alt+B or typing browse in the console to show this window.
  • Selecting "Show in Browse panel" when deploying with Ctrl+D.

  • Selecting "Browse" in the context menu of a file in the Solution or Files view.

By ticking the "Refresh on build" checkbox, you can make the Browse window automatically refresh when a build finishes successfully. This makes the workflow to develop a web application in F# easier than ever: edit your code, press Ctrl+B and see the result!

Here is the full change log:

  • Update FSharp.Compiler.Services to 0.0.61.
  • #466: Fix "An implementation of file/module XYZ has already been given" F# service message when opening a file.
  • #532: Show a "Loading..." tooltip when waiting for completion.
  • #533: Allow docking to any side of the screen and make docked console/interactive collapsible.
  • #536: Hide Workspace panel if there is no active workspace.
  • #537: Implement Browser tool window.
  • #540: Fix "Find in solution" tab context menu item.
  • #541: Refresh workspaces list after cloning a workspace.
  • #543: Auto-close and color-match brackets in editor.

Happy coding!

By András Jankó on Tuesday, September 16, 2014 — 1 comment

2048 game with F# + WebSharper Core team

This small logic game written in JavaScript+HTML5 has spawned quite a lot of variants. There is a site called Make Your Own 2048 where you can switch the original's numbers to any text or image and share your creation. However, modifying the game logic requires some programming knowledge and sometimes bigger rework of the original JavaScript code.

Try it live

My goal with an F#-based version was to have an easily overriden game rules class to enable writing a new variant in a few lines of code. In CloudSharper, you can write and play your variant right in your browser window. Clone this shared workspace and look for the file Variants.fs for editing. Build the project and open index.html and switch to Document/Split view for easiest testing, or use the Workspace/Deploy locally (Ctrl+D) menu option.

Clone in CloudSharper

Currently the grid size and the tiles' appearance can't be customized, but expect this demo to be expanded to show off more features coming to CloudSharper.

By Loïc Denuzière on Friday, September 12, 2014 — 0 comments

CloudSharper released Core team

Just a few hours after releasing CloudSharper, we are back with a handful of small enhancements:

  • #528: Solution context menu improvements.
  • #529: Fix the encoding of CloudSharper.exe output in the console.
  • #530: Allow selecting which solution or project to build with Ctrl+B. This item is highlighted in the Solution tree with a bold face.

  • #531: Extension API: select the file passed to FileDialog, if any.
  • Fix login with Github, and show a nicer interface to create or associate an account from a login provider.

Happy coding!

By Loïc Denuzière on Friday, September 12, 2014 — 0 comments

CloudSharper 0.9.19 released Core team

CloudSharper 0.9.19 is out! Here are some highlights:

  • Workspaces are now capable of managing zero, one or several solutions, instead of just one. No solution file is created when you first create a workspace, but it can be automatically created when you create a project containing a project file; this behavior is customized by the combobox in the "New project" window.
  • Configuration of listening urls and ports has slightly changed, both in CloudSharper.Console.exe.config if you use the console and on the CloudSharper.exe command line options. There is now a serveip to decide on which IP the various servers (Websockets, static files, sitelets) should listen, and a *port option for each of these servers.

Here is the full change log:

  • #444: Support multiple solution files in a workspace
  • #484: Missing files marked in the Solution view
  • #514: Problem adding existing files to a project
  • #515: Update project file when renaming a project item
  • #516: "Loading custom editors" stays on forever if the user has custom editors without js dependencies
  • #517: CloudSharper workspace filename do not refresh
  • #518: Support no solution files in a workspace
  • #523: NuGet dll reference gets removed when updating another package
  • #525: The New Project... dialog fails to show up
  • #526: Fix detecting http server failure to listen
  • #527: Project file updating in solution tree

Happy coding!

By András Jankó on Thursday, September 4, 2014 — 0 comments

WebSharper released Core team


  • Fixes to Math.atan2, String.Replace, Observable.pairwise and Observable.scan proxies.
  • Observable functions propagate exceptions originating in mapping/folding functions properly.
  • ParamArray in a constructor by WIG translates correctly.
  • WIG now correctly sets the full names of generic types so that the same type name with different number of type arguments can be used.

Possible breaking changes

Bounds checks are introduced on Array functions to match .NET behavior so they no longer return undefined values which could lead to hard to find bugs. This breaks previous code which uses the Array type as a sparse array. For using JavaScript operations on Arrays, casting to EcmaScript.Array or using the .ToEcma() extension method is recommended.

Additions to WebSharper Interface Generator

  • Support for indexed properties. Examples:

    "item" =@ T<obj> |> Indexed T<int> // has inline "$this[$index]"
    "prop" =@ T<obj> |> Indexed T<int> // has inline "$this.prop[$index]"

    A property named "item" is handled specially for creating the default inline, the object itself gets indexed.

  • Support for type constraints. Example:

    Generic - fun b -> "test" => (b |> WithConstraint [ T<System.Collections.IEnumerable> ]) ^-> T<unit>

    The WithConstraint function destructively sets the constraints on the type parameter. Use it anywhere but only once inside the function passed to the Generic helper.

By Loïc Denuzière on Monday, September 1, 2014 — 0 comments

CloudSharper released Core team

It's release time again! CloudSharper is out with a new feature: workspace-less fsi.

You can now run F# Interactive without having a workspace open, which is quite convenient for quick exploratory programming. Note that your fsi session will be reset as soon as you open a workspace.

You can also dock the interactive window to the right of the main tabset, making it easier to work interactively with a script or a documentation page.

This release also fixes a critical issue where the MSBuild agent on mono would throw an exception when trying to start a build.

As usual, here is the complete change log:

  • #467: Check subprotocol for GlobalCommands too
  • #474: Fix newlines in console output of foreign commands
  • #478: Show the CloudSharper version number on the dashboard
  • #490: Enable fsi in workspace-less scenarios
  • #499: Add "Find in solution explorer" and "Find in file explorer" to tab context menu
  • #503: Dialog layout on viewport resize
  • #504: Fix the new-ws command
  • #505: Fix styling of the FPish account association page
  • #507: Fix exception thrown by the MSBuild agent on mono when triggering a build
  • #509: Correctly connect to a local component running on another machine
  • #510: Allow docking the interactive window

Happy coding!

By Loïc Denuzière on Thursday, August 21, 2014 — 0 comments

CloudSharper 0.9.17 released Core team

We just published a bugfix release to CloudSharper Local alpha. This bugfix slightly alters the communication protocol between the web application and the installed component, which is why the version number was bumped to 0.9.17 and upgrading is required.

Change log:

  • #492: On workspace open, only open README.*.md
  • #500: Silent error when deleting a directory
  • #501: Can't delete an open workspace
  • #502: NuGet reference versioning on adding a package

Happy coding!

By Loïc Denuzière on Tuesday, August 19, 2014 — 0 comments

CloudSharper released Core team

We just released CloudSharper, a bugfix release fixing issues both in the GUI and the installed component. It is protocol-compatible, which means that you can still connect to CloudSharper using the local component, but you will not benefit from some of the fixes listed below.

Here is the change log:

  • #479: Use better icons in the solution tree instead of folders.
  • #481: Close/warning on tabs that belong to deleted files.
  • #483: Layout issues in toolbar on Deploy and Split view.
  • #493: Isolate MSBuild in an AppDomain to prevent it from reusing the same WebSharper.Tasks.dll after switching workspaces.
  • #494: Ignore empty lines and comment on code folding.
  • #496: Add "Tools > Nuget sources" menu entry.
  • #497: Add "Tools > Keyboard shortcuts enabled" toggle menu entry.
  • #498: Add a better icon to close/minimize on fsi.

Happy coding!