Skip to content

Commit

Permalink
use rollup to bundle @hegel/language-server
Browse files Browse the repository at this point in the history
  • Loading branch information
thecotne committed Jun 15, 2020
1 parent 9d69358 commit b3db498
Show file tree
Hide file tree
Showing 27 changed files with 273 additions and 89 deletions.
10 changes: 10 additions & 0 deletions packages/language-server/.babelrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"sourceType": "module",
"presets": [
["@babel/preset-env", { "targets": { "node": "current" }, "modules": false }],
"@babel/preset-flow"
],
"plugins": [
"@babel/plugin-proposal-class-properties"
]
}
8 changes: 0 additions & 8 deletions packages/language-server/.vscodeignore

This file was deleted.

6 changes: 3 additions & 3 deletions packages/language-server/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ At current time it can:

- [x]: show diagnostic information.

![Diagonstics](images/diagnostics.png)
![Diagonstics](https://raw.githubusercontent.com/JSMonk/hegel/master/packages/language-server/images/diagnostics.png)

- [x]: show information on hovering an element.

![Hover](images/hover.png)
![Hover](https://raw.githubusercontent.com/JSMonk/hegel/master/packages/language-server/images/hover.png)

- [x]: autocomplete variables on typing.

![Autocompletion](images/autocompletion.png)
![Autocompletion](https://raw.githubusercontent.com/JSMonk/hegel/master/packages/language-server/images/autocompletion.png)

## Extension Settings

Expand Down
60 changes: 60 additions & 0 deletions packages/language-server/extension.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
{
"name": "hegel-language-server",
"displayName": "Hegel",
"description": "Language server for Hegel Type Checker",
"version": "0.0.43",
"engines": {
"vscode": "^1.31.0"
},
"publisher": "JSMonk",
"icon": "images/logo.png",
"categories": [
"Programming Languages",
"Linters"
],
"repository": {
"type": "git",
"url": "https://github.com/JSMonk/hegel"
},
"activationEvents": [
"onLanguage:javascript",
"workspaceContains:**/.hegelrc"
],
"main": "./client.js",
"contributes": {
"configuration": {
"type": "object",
"title": "Client configuration",
"properties": {
"hegelLanguageServer.maxNumberOfProblems": {
"type": "number",
"default": 100,
"description": "Controls the maximum number of problems produced by the server."
},
"hegelLanguageServer.trace.server": {
"type": "string",
"enum": [
"off",
"messages",
"verbose"
],
"default": "off",
"description": "Traces the communication between VSCode and the hegelLanguageServer service."
}
}
},
"languages": [
{
"id": "javascript",
"extensions": [
".js",
".cjs",
".mjs"
]
}
]
},
"dependencies": {
"@hegel/typings": "*"
}
}
13 changes: 0 additions & 13 deletions packages/language-server/jsconfig.json

This file was deleted.

78 changes: 22 additions & 56 deletions packages/language-server/package.json
Original file line number Diff line number Diff line change
@@ -1,68 +1,34 @@
{
"name": "@hegel/language-server",
"displayName": "Hegel",
"description": "Language server for Hegel Type Checker",
"version": "0.0.45",
"engines": {
"vscode": "^1.31.0"
},
"publisher": "JSMonk",
"icon": "images/logo.png",
"categories": [
"Programming Languages",
"Linters"
],
"repository": {
"type": "git",
"url": "https://github.com/JSMonk/hegel"
},
"activationEvents": [
"onLanguage:javascript",
"workspaceContains:**/.hegelrc"
],
"main": "./client/client.js",
"contributes": {
"configuration": {
"type": "object",
"title": "Client configuration",
"properties": {
"hegelLanguageServer.maxNumberOfProblems": {
"type": "number",
"default": 100,
"description": "Controls the maximum number of problems produced by the server."
},
"hegelLanguageServer.trace.server": {
"type": "string",
"enum": [
"off",
"messages",
"verbose"
],
"default": "off",
"description": "Traces the communication between VSCode and the hegelLanguageServer service."
}
}
},
"languages": [
{
"id": "javascript",
"extensions": [
".js",
".cjs",
".mjs"
]
}
]
},
"version": "0.0.0-not-versioned",
"private": true,
"scripts": {
"test": "No tests defined yet.",
"compile": "vsce package --yarn"
"prebuild": "yarn build:clean",
"build": "yarn build:rollup; yarn build:copy; yarn build:package",
"build:rollup": "rollup --config rollup.config.js",
"build:rollup:watch": "yarn build -- --watch",
"build:rollup:dev": "yarn build -- --sourcemap",
"build:clean": "rm -rf build",
"build:copy": "yarn build:copy:manifest; yarn build:copy:images; yarn build:copy:typings; yarn build:copy:readme",
"build:copy:manifest": "cp extension.json build/package.json",
"build:copy:images": "cp -r src/images build/images",
"build:copy:typings": "mkdir -p build/node_modules/@hegel; cp -r $(node -e 'process.stdout.write(require(\"path\").dirname(require.resolve(\"@hegel/typings\")))') build/node_modules/@hegel/typings",
"build:copy:readme": "cp -r README.md build/README.md",
"build:package": "cd build; vsce package",
"build:install": "code --install-extension ./build/*.vsix",
"test": "No tests defined yet."
},
"devDependencies": {
"@rollup/plugin-babel": "^5.0.2",
"@rollup/plugin-commonjs": "^12.0.0",
"@rollup/plugin-node-resolve": "^8.0.0",
"@rollup/plugin-replace": "^2.3.2",
"@types/mocha": "^7.0.2",
"@types/node": "^13.13.2",
"@types/vscode": "1.14.0",
"builtin-modules": "^3.1.0",
"eslint": "^6.8.0",
"rollup": "^2.12.0",
"typescript": "^3.8.3",
"vsce": "^1.75.0",
"vscode-test": "1.3.0"
Expand Down
52 changes: 52 additions & 0 deletions packages/language-server/rollup.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
import resolve from '@rollup/plugin-node-resolve';
import babel from '@rollup/plugin-babel';
import commonjs from '@rollup/plugin-commonjs';
import builtinModules from 'builtin-modules';
import replace from '@rollup/plugin-replace';

const base = {
output: {
format: 'cjs'
},
external: [
...builtinModules,
'vscode'
],
plugins: [
resolve({
preferBuiltins: true
}),
commonjs(),
babel({ babelHelpers: 'bundled' })
]
};

export default [
{
...base,
input: 'src/client/client.js',
output: {
...base.output,
file: 'build/client.js',
}
},
{
...base,
input: 'src/server/server.js',
output: {
...base.output,
file: 'build/server.js',
},
plugins: [
replace({
'require.resolve': 'require_resolve',
}),
...base.plugins,
{
renderChunk (code) {
return 'var require_resolve = require.resolve.bind(require);\n' + code;
}
}
]
}
];
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
const path = require("path");
const { workspace } = require("vscode");
const { TransportKind, LanguageClient } = require("vscode-languageclient");
import { workspace } from "vscode";
import { TransportKind, LanguageClient } from "vscode-languageclient";

let client;

exports.activate = (context) => {
const serverModule = context.asAbsolutePath(path.join("server", "server.js"));
const serverModule = context.asAbsolutePath('server.js');
const debugOptions = { execArgv: ["--nolazy", "--inspect=6009"] };

const serverOptions = {
Expand Down
File renamed without changes
File renamed without changes
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ const { ModuleScope } = require("@hegel/core");

const EMPTY_SCOPE = new ModuleScope();

exports.EMPTY_SCOPE = EMPTY_SCOPE;
exports.EMPTY_SCOPE = EMPTY_SCOPE;
File renamed without changes.
Loading

0 comments on commit b3db498

Please sign in to comment.