├── .config
└── dotnet-tools.json
├── .gitignore
├── .vscode
├── launch.json
└── tasks.json
├── .vscodeignore
├── LICENSE.md
├── Nuget.Config
├── README.md
├── RELEASE_NOTES.md
├── build.cmd
├── build.fsx
├── build.sh
├── global.json
├── jsconfig.json
├── package.json
├── paket.dependencies
├── paket.lock
├── release
├── CHANGELOG.md
├── LICENSE.md
├── README.md
└── package.json
├── src
├── Extension.fsproj
├── extension.fs
└── paket.references
├── webpack.config.js
└── yarn.lock
/.config/dotnet-tools.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 1,
3 | "isRoot": true,
4 | "tools": {
5 | "paket": {
6 | "version": "5.257.0",
7 | "commands": [
8 | "paket"
9 | ]
10 | },
11 | "fake-cli": {
12 | "version": "5.20.3",
13 | "commands": [
14 | "fake"
15 | ]
16 | },
17 | "fable": {
18 | "version": "3.1.5",
19 | "commands": [
20 | "fable"
21 | ]
22 | }
23 | }
24 | }
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 |
5 | # Runtime data
6 | pids
7 | *.pid
8 | *.seed
9 |
10 | # Directory for instrumented libs generated by jscoverage/JSCover
11 | lib-cov
12 |
13 | # Coverage directory used by tools like istanbul
14 | coverage
15 |
16 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
17 | .grunt
18 |
19 | # Compiled binary addons (http://nodejs.org/api/addons.html)
20 | build/Release
21 |
22 | # Dependency directory
23 | # Commenting this out is preferred by some people, see
24 | # https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git-
25 | node_modules
26 |
27 | # Users Environment Variables
28 | .lock-wscript
29 | *.suo
30 | Test/obj/
31 | Test/bin/
32 | .paket/paket.exe
33 | paket-files
34 | packages
35 | typings/FunScript.TypeScript/Output
36 | typings/FunScript.TypeScript/Types.zip
37 | typings/FunScript.TypeScript/*.txt
38 |
39 | .DS_Store
40 | src/**/bin/
41 | src/**/obj/
42 | *.userprefs
43 | src/paket/bin/paket.exe
44 | src/core/lib/core.js
45 | src/paket/lib/paket.js
46 | *ncrunch*
47 | src/core/README.md
48 | src/atom-fsharp/lib/
49 | src/fsharp/lib/fsharp.js
50 | src/atom-fsharp/lib/fsharp.js
51 | /temp/release
52 | src/atom-fsharp/bin-fantomas/
53 | release/syntaxes
54 | release/templates
55 | release/schemas
56 | release_test/bin
57 |
58 | temp
59 | .fake
60 | .ionide
61 | .paket
62 | .vs
63 | *.js
64 | !webpack.config.js
65 | *.js.map
66 | .orig
67 | release.cmd
68 | release-preview.cmd
69 | paket-files
70 | issueList.md
71 | release/package-lock\.json
72 | *.vsix
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | // A launch configuration that compiles the extension and then opens it inside a new window
2 | {
3 | "version": "0.2.0",
4 | "configurations": [
5 | {
6 | "preLaunchTask": "Build",
7 | "name": "Build and Launch Extension",
8 | "type": "extensionHost",
9 | "runtimeExecutable": "${execPath}",
10 | "args": ["--extensionDevelopmentPath=${workspaceRoot}/release" ],
11 | "stopOnEntry": false,
12 | "request": "launch",
13 | "sourceMaps": false
14 | },
15 | {
16 | "name": "Launch Only",
17 | "type": "extensionHost",
18 | "runtimeExecutable": "${execPath}",
19 | "args": ["--extensionDevelopmentPath=${workspaceRoot}/release" ],
20 | "stopOnEntry": false,
21 | "request": "launch",
22 | "sourceMaps": false
23 | }
24 | ]
25 | }
--------------------------------------------------------------------------------
/.vscode/tasks.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "2.0.0",
3 | "presentation": {
4 | "reveal": "silent"
5 | },
6 | "type": "shell",
7 | "tasks": [
8 | {
9 | "command": "${workspaceRoot}/build.sh",
10 | "windows": {
11 | "command": "${workspaceRoot}/build.cmd"
12 | },
13 | "taskName": "Build",
14 | "args": [
15 | "Default"
16 | ],
17 | "group": {
18 | "kind": "build",
19 | "isDefault": true
20 | }
21 | },
22 | {
23 | "command": "${workspaceRoot}/build.sh",
24 | "windows": {
25 | "command": "${workspaceRoot}/build.cmd"
26 | },
27 | "taskName": "Full Build",
28 | "args": [
29 | "Build"
30 | ],
31 | "group": "build"
32 | },
33 | {
34 | "command": "${workspaceRoot}/build.sh",
35 | "windows": {
36 | "command": "${workspaceRoot}/build.cmd"
37 | },
38 | "taskName": "Watch",
39 | "args": [
40 | "Watch"
41 | ],
42 | "group": "build",
43 | "isBackground": true,
44 | "problemMatcher": []
45 | }
46 | ]
47 | }
48 |
--------------------------------------------------------------------------------
/.vscodeignore:
--------------------------------------------------------------------------------
1 | .vscode/**
2 | typings/**
3 | test/**
4 | .gitignore
5 | jsconfig.json
6 | vsc-extension-quickstart.md
7 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2017 Lambda Factory
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Nuget.Config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | The sample for building VSCode extensions using F# and Fable.
2 |
3 | ### Requirements
4 | * VSCode
5 | * Node.js
6 | * `dotnet` 5.0
7 | * Yarn
8 |
9 | ### How to build
10 |
11 | 1. `yarn install`
12 | 2. `cd src && dotnet restore`
13 | 3. `cd .. && code .`
14 | 4. Press `F5` for single build, or run `Watch` task and `Launch Only` debug configuration for watch mode compilation.
--------------------------------------------------------------------------------
/RELEASE_NOTES.md:
--------------------------------------------------------------------------------
1 | ### 0.0.1 - 15.09.2017
2 |
3 | * Getting started
--------------------------------------------------------------------------------
/build.cmd:
--------------------------------------------------------------------------------
1 | @echo off
2 | dotnet tool restore
3 | dotnet paket restore
4 | dotnet fake run build.fsx %*
5 |
--------------------------------------------------------------------------------
/build.fsx:
--------------------------------------------------------------------------------
1 | #r "paket: groupref build //"
2 | #load ".fake/build.fsx/intellisense.fsx"
3 |
4 | open Fake.Core
5 | open Fake.JavaScript
6 | open Fake.DotNet
7 | open Fake.IO
8 | open Fake.Core.TargetOperators
9 |
10 | // --------------------------------------------------------------------------------------
11 | // Build the Generator project and run it
12 | // --------------------------------------------------------------------------------------
13 |
14 | Target.create "Clean" (fun _ ->
15 | Shell.cleanDirs ["./temp"]
16 | Shell.copy "release" ["README.md"; "LICENSE.md"]
17 | Shell.copyFile "release/CHANGELOG.md" "RELEASE_NOTES.md"
18 | )
19 |
20 | Target.create "YarnInstall" <| fun _ ->
21 | Yarn.install id
22 |
23 | Target.create "DotNetRestore" <| fun _ ->
24 | DotNet.restore id "src"
25 |
26 | module Fable =
27 | type Command =
28 | | Build
29 | | Watch
30 | | Clean
31 | type Webpack =
32 | | WithoutWebpack
33 | | WithWebpack of args: string option
34 | type Args = {
35 | Command: Command
36 | Debug: bool
37 | Experimental: bool
38 | ProjectPath: string
39 | OutDir: string option
40 | Defines: string list
41 | AdditionalFableArgs: string option
42 | Webpack: Webpack
43 | }
44 |
45 | let DefaultArgs = {
46 | Command = Build
47 | Debug = false
48 | Experimental = false
49 | ProjectPath = "./src/Extension.fsproj"
50 | OutDir = Some "./out"
51 | Defines = []
52 | AdditionalFableArgs = None
53 | Webpack = WithoutWebpack
54 | }
55 |
56 | let private mkArgs args =
57 | let fableCmd =
58 | match args.Command with
59 | | Build -> ""
60 | | Watch -> "watch"
61 | | Clean -> "clean"
62 | let fableProjPath = args.ProjectPath
63 | let fableDebug = if args.Debug then "--define DEBUG" else ""
64 | let fableExperimental = if args.Experimental then "--define IONIDE_EXPERIMENTAL" else ""
65 | let fableOutDir =
66 | match args.OutDir with
67 | | Some dir -> sprintf "--outDir %s" dir
68 | | None -> ""
69 | let fableDefines = args.Defines |> List.map (sprintf "--define %s") |> String.concat " "
70 | let fableAdditionalArgs = args.AdditionalFableArgs |> Option.defaultValue ""
71 | let webpackCmd =
72 | match args.Webpack with
73 | | WithoutWebpack -> ""
74 | | WithWebpack webpackArgs ->
75 | sprintf "--%s webpack %s %s %s"
76 | (match args.Command with | Watch -> "runWatch" | _ -> "run")
77 | (if args.Debug then "--mode=development" else "--mode=production")
78 | (if args.Experimental then "--env.ionideExperimental" else "")
79 | (webpackArgs |> Option.defaultValue "")
80 |
81 | // $"{fableCmd} {fableProjPath} {fableOutDir} {fableDebug} {fableExperimental} {fableDefines} {fableAdditionalArgs} {webpackCmd}"
82 | sprintf "%s %s %s %s %s %s %s %s" fableCmd fableProjPath fableOutDir fableDebug fableExperimental fableDefines fableAdditionalArgs webpackCmd
83 |
84 | let run args =
85 | let cmd = mkArgs args
86 | let result = DotNet.exec id "fable" cmd
87 | if not result.OK then
88 | failwithf "Error while running 'dotnet fable' with args: %s" cmd
89 |
90 | Target.create "RunScript" (fun _ ->
91 | Fable.run { Fable.DefaultArgs with Command = Fable.Build; Debug = false; Webpack = Fable.WithWebpack None }
92 | )
93 |
94 | Target.create "Watch" (fun _ ->
95 | Fable.run { Fable.DefaultArgs with Command = Fable.Watch; Debug = true; Webpack = Fable.WithWebpack None }
96 | )
97 |
98 |
99 | // --------------------------------------------------------------------------------------
100 | // Run generator by default. Invoke 'build ' to override
101 | // --------------------------------------------------------------------------------------
102 |
103 | Target.create "Default" ignore
104 |
105 | "YarnInstall" ?=> "RunScript"
106 | "DotNetRestore" ?=> "RunScript"
107 |
108 | "Clean"
109 | ==> "RunScript"
110 | ==> "Default"
111 |
112 | Target.runOrDefault "Default"
113 |
--------------------------------------------------------------------------------
/build.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | if test "$OS" = "Windows_NT"
3 | then
4 | cmd /C build.cmd
5 | else
6 | dotnet tool restore
7 | dotnet paket restore
8 | dotnet fake run build.fsx $@
9 | fi
10 |
--------------------------------------------------------------------------------
/global.json:
--------------------------------------------------------------------------------
1 | {
2 | "sdk": {
3 | "version": "5.0.102",
4 | "rollForward": "minor"
5 | }
6 | }
--------------------------------------------------------------------------------
/jsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "commonjs",
4 | "target": "ES5",
5 | "noLib": true
6 | },
7 | "exclude": [
8 | "node_modules"
9 | ]
10 | }
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "scripts": {},
3 | "dependencies": {
4 | "htmlparser2": "^4.1.0"
5 | },
6 | "devDependencies": {
7 | "@babel/core": "^7.11.6",
8 | "@babel/plugin-transform-runtime": "^7.11.5",
9 | "@babel/preset-env": "^7.11.5",
10 | "@types/showdown": "^1.9.3",
11 | "@types/vscode": "^1.52.0",
12 | "@types/ws": "^7.2.6",
13 | "axios": "^0.21.2",
14 | "babel-loader": "^8.1.0",
15 | "mocha": "^8.1.3",
16 | "showdown": "^1.9.1",
17 | "toml": "^3.0.0",
18 | "vscode-debugadapter": "^1.44.0",
19 | "vscode-languageclient": "^7.0.0",
20 | "webpack": "^4.44.1",
21 | "webpack-cli": "^3.3.12",
22 | "ws": "^7.4.6",
23 | "xhr2": "^0.2.0"
24 | }
25 | }
--------------------------------------------------------------------------------
/paket.dependencies:
--------------------------------------------------------------------------------
1 | version 5.249.0
2 | source https://api.nuget.org/v3/index.json
3 | frameworks: netstandard2.0
4 | storage:none
5 |
6 | nuget Fable.Core
7 | nuget Fable.Promise
8 | nuget Fable.Node
9 | nuget Fable.Browser.Dom
10 | nuget FSharp.Core
11 |
12 | github ionide/ionide-vscode-helpers src/Fable.Import.VSCode.fs
13 | github ionide/ionide-vscode-helpers src/Helpers.fs
14 |
15 | group build
16 | source https://api.nuget.org/v3/index.json
17 | storage:none
18 | framework:netstandard2.0
19 |
20 | nuget FSharp.Core 4.7.2
21 | nuget Fake.Core.Target
22 | nuget Fake.Core.Process
23 | nuget Fake.Core.ReleaseNotes
24 | nuget Fake.Core.Environment
25 | nuget Fake.Core.UserInput
26 | nuget Fake.DotNet.Cli
27 | nuget Fake.DotNet.AssemblyInfoFile
28 | nuget Fake.DotNet.Paket
29 | nuget Fake.DotNet.MsBuild
30 | nuget Fake.IO.FileSystem
31 | nuget Fake.IO.Zip
32 | nuget Fake.Api.GitHub
33 | nuget Fake.Tools.Git
34 | nuget Fake.JavaScript.Yarn
--------------------------------------------------------------------------------
/paket.lock:
--------------------------------------------------------------------------------
1 | STORAGE: NONE
2 | RESTRICTION: == netstandard2.0
3 | NUGET
4 | remote: https://api.nuget.org/v3/index.json
5 | Fable.Browser.Blob (1.1)
6 | Fable.Core (>= 3.0)
7 | FSharp.Core (>= 4.6.2)
8 | Fable.Browser.Dom (2.2)
9 | Fable.Browser.Blob (>= 1.1)
10 | Fable.Browser.Event (>= 1.2.1)
11 | Fable.Browser.WebStorage (>= 1.0)
12 | Fable.Core (>= 3.0)
13 | FSharp.Core (>= 4.7.2)
14 | Fable.Browser.Event (1.2.1)
15 | Fable.Core (>= 3.0)
16 | FSharp.Core (>= 4.7)
17 | Fable.Browser.WebStorage (1.0)
18 | Fable.Browser.Event (>= 1.0)
19 | Fable.Core (>= 3.0)
20 | FSharp.Core (>= 4.5.2)
21 | Fable.Core (3.2.4)
22 | FSharp.Core (>= 4.7.2)
23 | Fable.Node (1.2)
24 | Fable.Core (>= 3.1.2)
25 | FSharp.Core (>= 5.0)
26 | Fable.Promise (2.2)
27 | Fable.Core (>= 3.1.5)
28 | FSharp.Core (>= 5.0)
29 | FSharp.Core (5.0.1)
30 | GITHUB
31 | remote: ionide/ionide-vscode-helpers
32 | src/Fable.Import.VSCode.fs (f9cfaa474910164482c2f5ae4a2fc1e54aa4ec72)
33 | src/Helpers.fs (f9cfaa474910164482c2f5ae4a2fc1e54aa4ec72)
34 | GROUP build
35 | STORAGE: NONE
36 | RESTRICTION: == netstandard2.0
37 | NUGET
38 | remote: https://api.nuget.org/v3/index.json
39 | BlackFox.VsWhere (1.1)
40 | FSharp.Core (>= 4.2.3)
41 | Microsoft.Win32.Registry (>= 4.7)
42 | Fake.Api.GitHub (5.20.3)
43 | FSharp.Core (>= 4.7.2)
44 | Octokit (>= 0.48)
45 | Fake.Core.CommandLineParsing (5.20.3)
46 | FParsec (>= 1.1.1)
47 | FSharp.Core (>= 4.7.2)
48 | Fake.Core.Context (5.20.3)
49 | FSharp.Core (>= 4.7.2)
50 | Fake.Core.Environment (5.20.3)
51 | FSharp.Core (>= 4.7.2)
52 | Fake.Core.FakeVar (5.20.3)
53 | Fake.Core.Context (>= 5.20.3)
54 | FSharp.Core (>= 4.7.2)
55 | Fake.Core.Process (5.20.3)
56 | Fake.Core.Environment (>= 5.20.3)
57 | Fake.Core.FakeVar (>= 5.20.3)
58 | Fake.Core.String (>= 5.20.3)
59 | Fake.Core.Trace (>= 5.20.3)
60 | Fake.IO.FileSystem (>= 5.20.3)
61 | FSharp.Core (>= 4.7.2)
62 | System.Collections.Immutable (>= 1.7.1)
63 | Fake.Core.ReleaseNotes (5.20.3)
64 | Fake.Core.SemVer (>= 5.20.3)
65 | Fake.Core.String (>= 5.20.3)
66 | FSharp.Core (>= 4.7.2)
67 | Fake.Core.SemVer (5.20.3)
68 | FSharp.Core (>= 4.7.2)
69 | Fake.Core.String (5.20.3)
70 | FSharp.Core (>= 4.7.2)
71 | Fake.Core.Target (5.20.3)
72 | Fake.Core.CommandLineParsing (>= 5.20.3)
73 | Fake.Core.Context (>= 5.20.3)
74 | Fake.Core.Environment (>= 5.20.3)
75 | Fake.Core.FakeVar (>= 5.20.3)
76 | Fake.Core.Process (>= 5.20.3)
77 | Fake.Core.String (>= 5.20.3)
78 | Fake.Core.Trace (>= 5.20.3)
79 | FSharp.Control.Reactive (>= 4.4.2)
80 | FSharp.Core (>= 4.7.2)
81 | Fake.Core.Tasks (5.20.3)
82 | Fake.Core.Trace (>= 5.20.3)
83 | FSharp.Core (>= 4.7.2)
84 | Fake.Core.Trace (5.20.3)
85 | Fake.Core.Environment (>= 5.20.3)
86 | Fake.Core.FakeVar (>= 5.20.3)
87 | FSharp.Core (>= 4.7.2)
88 | Fake.Core.UserInput (5.20.3)
89 | FSharp.Core (>= 4.7.2)
90 | Fake.Core.Xml (5.20.3)
91 | Fake.Core.String (>= 5.20.3)
92 | FSharp.Core (>= 4.7.2)
93 | Fake.DotNet.AssemblyInfoFile (5.20.3)
94 | Fake.Core.Environment (>= 5.20.3)
95 | Fake.Core.String (>= 5.20.3)
96 | Fake.Core.Trace (>= 5.20.3)
97 | Fake.IO.FileSystem (>= 5.20.3)
98 | FSharp.Core (>= 4.7.2)
99 | Fake.DotNet.Cli (5.20.3)
100 | Fake.Core.Environment (>= 5.20.3)
101 | Fake.Core.Process (>= 5.20.3)
102 | Fake.Core.String (>= 5.20.3)
103 | Fake.Core.Trace (>= 5.20.3)
104 | Fake.DotNet.MSBuild (>= 5.20.3)
105 | Fake.DotNet.NuGet (>= 5.20.3)
106 | Fake.IO.FileSystem (>= 5.20.3)
107 | FSharp.Core (>= 4.7.2)
108 | Mono.Posix.NETStandard (>= 1.0)
109 | Newtonsoft.Json (>= 12.0.3)
110 | Fake.DotNet.MSBuild (5.20.3)
111 | BlackFox.VsWhere (>= 1.1)
112 | Fake.Core.Environment (>= 5.20.3)
113 | Fake.Core.Process (>= 5.20.3)
114 | Fake.Core.String (>= 5.20.3)
115 | Fake.Core.Trace (>= 5.20.3)
116 | Fake.IO.FileSystem (>= 5.20.3)
117 | FSharp.Core (>= 4.7.2)
118 | MSBuild.StructuredLogger (>= 2.1.176)
119 | Fake.DotNet.NuGet (5.20.3)
120 | Fake.Core.Environment (>= 5.20.3)
121 | Fake.Core.Process (>= 5.20.3)
122 | Fake.Core.SemVer (>= 5.20.3)
123 | Fake.Core.String (>= 5.20.3)
124 | Fake.Core.Tasks (>= 5.20.3)
125 | Fake.Core.Trace (>= 5.20.3)
126 | Fake.Core.Xml (>= 5.20.3)
127 | Fake.IO.FileSystem (>= 5.20.3)
128 | Fake.Net.Http (>= 5.20.3)
129 | FSharp.Core (>= 4.7.2)
130 | Newtonsoft.Json (>= 12.0.3)
131 | NuGet.Protocol (>= 5.6)
132 | Fake.DotNet.Paket (5.20.3)
133 | Fake.Core.Process (>= 5.20.3)
134 | Fake.Core.String (>= 5.20.3)
135 | Fake.Core.Trace (>= 5.20.3)
136 | Fake.DotNet.Cli (>= 5.20.3)
137 | Fake.IO.FileSystem (>= 5.20.3)
138 | FSharp.Core (>= 4.7.2)
139 | Fake.IO.FileSystem (5.20.3)
140 | Fake.Core.String (>= 5.20.3)
141 | FSharp.Core (>= 4.7.2)
142 | Fake.IO.Zip (5.20.3)
143 | Fake.Core.String (>= 5.20.3)
144 | Fake.IO.FileSystem (>= 5.20.3)
145 | FSharp.Core (>= 4.7.2)
146 | Fake.JavaScript.Yarn (5.20.3)
147 | Fake.Core.Environment (>= 5.20.3)
148 | Fake.Core.Process (>= 5.20.3)
149 | FSharp.Core (>= 4.7.2)
150 | Fake.Net.Http (5.20.3)
151 | Fake.Core.Trace (>= 5.20.3)
152 | FSharp.Core (>= 4.7.2)
153 | Fake.Tools.Git (5.20.3)
154 | Fake.Core.Environment (>= 5.20.3)
155 | Fake.Core.Process (>= 5.20.3)
156 | Fake.Core.SemVer (>= 5.20.3)
157 | Fake.Core.String (>= 5.20.3)
158 | Fake.Core.Trace (>= 5.20.3)
159 | Fake.IO.FileSystem (>= 5.20.3)
160 | FSharp.Core (>= 4.7.2)
161 | FParsec (1.1.1)
162 | FSharp.Core (>= 4.3.4)
163 | FSharp.Control.Reactive (4.5)
164 | FSharp.Core (>= 4.7.2)
165 | System.Reactive (>= 4.4.1)
166 | FSharp.Core (4.7.2)
167 | Microsoft.Build (16.8)
168 | Microsoft.Build.Framework (16.8)
169 | System.Security.Permissions (>= 4.7)
170 | Microsoft.Build.Tasks.Core (16.8)
171 | Microsoft.Build.Framework (>= 16.8)
172 | Microsoft.Build.Utilities.Core (>= 16.8)
173 | Microsoft.Win32.Registry (>= 4.3)
174 | System.CodeDom (>= 4.4)
175 | System.Collections.Immutable (>= 1.5)
176 | System.Reflection.Metadata (>= 1.6)
177 | System.Reflection.TypeExtensions (>= 4.1)
178 | System.Resources.Extensions (>= 4.6)
179 | System.Runtime.InteropServices (>= 4.3)
180 | System.Security.Cryptography.Pkcs (>= 4.7)
181 | System.Security.Cryptography.Xml (>= 4.7)
182 | System.Security.Permissions (>= 4.7)
183 | System.Threading.Tasks.Dataflow (>= 4.9)
184 | Microsoft.Build.Utilities.Core (16.8)
185 | Microsoft.Build.Framework (>= 16.8)
186 | Microsoft.Win32.Registry (>= 4.3)
187 | System.Collections.Immutable (>= 1.5)
188 | System.Security.Permissions (>= 4.7)
189 | System.Text.Encoding.CodePages (>= 4.0.1)
190 | Microsoft.NETCore.Platforms (5.0.1)
191 | Microsoft.NETCore.Targets (5.0)
192 | Microsoft.Win32.Registry (5.0)
193 | System.Buffers (>= 4.5.1)
194 | System.Memory (>= 4.5.4)
195 | System.Security.AccessControl (>= 5.0)
196 | System.Security.Principal.Windows (>= 5.0)
197 | Mono.Posix.NETStandard (1.0)
198 | MSBuild.StructuredLogger (2.1.303)
199 | Microsoft.Build (>= 16.4)
200 | Microsoft.Build.Framework (>= 16.4)
201 | Microsoft.Build.Tasks.Core (>= 16.4)
202 | Microsoft.Build.Utilities.Core (>= 16.4)
203 | Newtonsoft.Json (12.0.3)
204 | NuGet.Common (5.8.1)
205 | NuGet.Frameworks (>= 5.8.1)
206 | NuGet.Configuration (5.8.1)
207 | NuGet.Common (>= 5.8.1)
208 | System.Security.Cryptography.ProtectedData (>= 4.4)
209 | NuGet.Frameworks (5.8.1)
210 | NuGet.Packaging (5.8.1)
211 | Newtonsoft.Json (>= 9.0.1)
212 | NuGet.Configuration (>= 5.8.1)
213 | NuGet.Versioning (>= 5.8.1)
214 | System.Security.Cryptography.Cng (>= 5.0)
215 | System.Security.Cryptography.Pkcs (>= 5.0)
216 | NuGet.Protocol (5.8.1)
217 | NuGet.Packaging (>= 5.8.1)
218 | NuGet.Versioning (5.8.1)
219 | Octokit (0.50)
220 | System.Buffers (4.5.1)
221 | System.CodeDom (5.0)
222 | System.Collections.Immutable (5.0)
223 | System.Memory (>= 4.5.4)
224 | System.Formats.Asn1 (5.0)
225 | System.Buffers (>= 4.5.1)
226 | System.Memory (>= 4.5.4)
227 | System.IO (4.3)
228 | Microsoft.NETCore.Platforms (>= 1.1)
229 | Microsoft.NETCore.Targets (>= 1.1)
230 | System.Runtime (>= 4.3)
231 | System.Text.Encoding (>= 4.3)
232 | System.Threading.Tasks (>= 4.3)
233 | System.Memory (4.5.4)
234 | System.Buffers (>= 4.5.1)
235 | System.Numerics.Vectors (>= 4.4)
236 | System.Runtime.CompilerServices.Unsafe (>= 4.5.3)
237 | System.Numerics.Vectors (4.5)
238 | System.Reactive (5.0)
239 | System.Runtime.InteropServices.WindowsRuntime (>= 4.3)
240 | System.Threading.Tasks.Extensions (>= 4.5.4)
241 | System.Reflection (4.3)
242 | Microsoft.NETCore.Platforms (>= 1.1)
243 | Microsoft.NETCore.Targets (>= 1.1)
244 | System.IO (>= 4.3)
245 | System.Reflection.Primitives (>= 4.3)
246 | System.Runtime (>= 4.3)
247 | System.Reflection.Metadata (5.0)
248 | System.Collections.Immutable (>= 5.0)
249 | System.Reflection.Primitives (4.3)
250 | Microsoft.NETCore.Platforms (>= 1.1)
251 | Microsoft.NETCore.Targets (>= 1.1)
252 | System.Runtime (>= 4.3)
253 | System.Reflection.TypeExtensions (4.7)
254 | System.Resources.Extensions (5.0)
255 | System.Memory (>= 4.5.4)
256 | System.Runtime (4.3.1)
257 | Microsoft.NETCore.Platforms (>= 1.1.1)
258 | Microsoft.NETCore.Targets (>= 1.1.3)
259 | System.Runtime.CompilerServices.Unsafe (5.0)
260 | System.Runtime.Handles (4.3)
261 | Microsoft.NETCore.Platforms (>= 1.1)
262 | Microsoft.NETCore.Targets (>= 1.1)
263 | System.Runtime (>= 4.3)
264 | System.Runtime.InteropServices (4.3)
265 | Microsoft.NETCore.Platforms (>= 1.1)
266 | Microsoft.NETCore.Targets (>= 1.1)
267 | System.Reflection (>= 4.3)
268 | System.Reflection.Primitives (>= 4.3)
269 | System.Runtime (>= 4.3)
270 | System.Runtime.Handles (>= 4.3)
271 | System.Runtime.InteropServices.WindowsRuntime (4.3)
272 | System.Runtime (>= 4.3)
273 | System.Security.AccessControl (5.0)
274 | System.Security.Principal.Windows (>= 5.0)
275 | System.Security.Cryptography.Cng (5.0)
276 | System.Security.Cryptography.Pkcs (5.0.1)
277 | System.Buffers (>= 4.5.1)
278 | System.Formats.Asn1 (>= 5.0)
279 | System.Memory (>= 4.5.4)
280 | System.Security.Cryptography.Cng (>= 5.0)
281 | System.Security.Cryptography.ProtectedData (5.0)
282 | System.Memory (>= 4.5.4)
283 | System.Security.Cryptography.Xml (5.0)
284 | System.Memory (>= 4.5.4)
285 | System.Security.Cryptography.Pkcs (>= 5.0)
286 | System.Security.Permissions (>= 5.0)
287 | System.Security.Permissions (5.0)
288 | System.Security.AccessControl (>= 5.0)
289 | System.Security.Principal.Windows (5.0)
290 | System.Text.Encoding (4.3)
291 | Microsoft.NETCore.Platforms (>= 1.1)
292 | Microsoft.NETCore.Targets (>= 1.1)
293 | System.Runtime (>= 4.3)
294 | System.Text.Encoding.CodePages (5.0)
295 | System.Runtime.CompilerServices.Unsafe (>= 5.0)
296 | System.Threading.Tasks (4.3)
297 | Microsoft.NETCore.Platforms (>= 1.1)
298 | Microsoft.NETCore.Targets (>= 1.1)
299 | System.Runtime (>= 4.3)
300 | System.Threading.Tasks.Dataflow (5.0)
301 | System.Threading.Tasks.Extensions (4.5.4)
302 | System.Runtime.CompilerServices.Unsafe (>= 4.5.3)
303 |
--------------------------------------------------------------------------------
/release/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | ### 0.0.1 - 15.09.2017
2 |
3 | * Getting started
--------------------------------------------------------------------------------
/release/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2017 Lambda Factory
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/release/README.md:
--------------------------------------------------------------------------------
1 | # README
2 | ## This is the README for your extension "fabledemo"
3 | You can author your README using Visual Studio Code. Here are some useful editor keyboard shortcuts:
4 |
5 | * Split the editor (`Cmd+\` on OSX or `Ctrl+\` on Windows and Linux)
6 | * Toggle preview (`Shift+CMD+V` on OSX or `Shift+Ctrl+V` on Windows and Linux)
7 | * Press `Ctrl+Space` (Windows, Linux) or `Cmd+Space` (OSX) to see a list of Markdown snippets
8 |
9 | ### For more information
10 | * [Visual Studio Code's Markdown Support](http://code.visualstudio.com/docs/languages/markdown)
11 | * [Markdown Syntax Reference](https://help.github.com/articles/markdown-basics/)
12 |
13 | ** Enjoy!**
--------------------------------------------------------------------------------
/release/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "fabledemo",
3 | "publisher": "fabledemo",
4 | "version": "0.0.1",
5 | "engines": {
6 | "vscode": "^0.10.10"
7 | },
8 | "categories": [
9 | "Other"
10 | ],
11 | "activationEvents": [
12 | "onCommand:extension.sayHello"
13 | ],
14 | "main": "./extension",
15 | "contributes": {
16 | "commands": [
17 | {
18 | "command": "extension.sayHello",
19 | "title": "Hello World"
20 | }
21 | ]
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/Extension.fsproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 |
6 |
7 |
8 | True
9 | paket-files/Fable.Import.VSCode.fs
10 |
11 |
12 | True
13 | paket-files/Helpers.fs
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/src/extension.fs:
--------------------------------------------------------------------------------
1 | module VSCodeFable
2 |
3 | open Fable.Import
4 |
5 | let activate (context : vscode.ExtensionContext) =
6 | printfn "Hello world"
7 |
8 | let action : obj -> obj = fun _ ->
9 | vscode.window.showInformationMessage("Hello world!", Array.empty) |> box
10 |
11 | vscode.commands.registerCommand("extension.sayHello", action)
12 | |> context.subscriptions.Add
13 |
--------------------------------------------------------------------------------
/src/paket.references:
--------------------------------------------------------------------------------
1 | Fable.Core
2 | Fable.Promise
3 | Fable.Node
4 | Fable.Browser.Dom
5 |
6 | FSharp.Core
7 |
8 | File: Fable.Import.VSCode.fs
9 | File: Helpers.fs
--------------------------------------------------------------------------------
/webpack.config.js:
--------------------------------------------------------------------------------
1 | var path = require("path");
2 |
3 | function resolve(filePath) {
4 | return path.join(__dirname, filePath)
5 | }
6 |
7 | var babelOptions = {
8 | presets: [
9 | ["@babel/preset-env", {
10 | "modules": false
11 | }]
12 | ],
13 | plugins: ["@babel/plugin-transform-runtime"]
14 | }
15 |
16 | module.exports = function(env, argv) {
17 | var isProduction = argv.mode == "production"
18 | console.log("Bundling for " + (isProduction ? "production" : "development") + "...");
19 |
20 | var ionideExperimental = (env && env.ionideExperimental);
21 | var outputPath = ionideExperimental ? "release-exp" : "release";
22 | console.log("Output path: " + outputPath);
23 |
24 | return {
25 | target: 'node',
26 | mode: isProduction ? "production" : "development",
27 | devtool: "source-map",
28 | entry: './out/extension.js',
29 | output: {
30 | filename: 'extension.js',
31 | path: resolve('./' + outputPath),
32 | libraryTarget: 'commonjs2'
33 | },
34 | resolve: {
35 | modules: [resolve("./node_modules/")]
36 | },
37 | //externals: [nodeExternals()],
38 | externals: {
39 | // Who came first the host or the plugin ?
40 | "vscode": "commonjs vscode",
41 |
42 | // Optional dependencies of ws
43 | "utf-8-validate": "commonjs utf-8-validate",
44 | "bufferutil": "commonjs bufferutil"
45 | },
46 | module: {
47 | rules: [
48 | {
49 | test: /\.js$/,
50 | exclude: /node_modules/,
51 | use: {
52 | loader: 'babel-loader',
53 | options: babelOptions
54 | },
55 | }
56 | ]
57 | }
58 | };
59 | }
--------------------------------------------------------------------------------