Skip to content

Commit 64d77dc

Browse files
committed
refactor: Split script
1 parent d1ad01e commit 64d77dc

File tree

2 files changed

+40
-35
lines changed

2 files changed

+40
-35
lines changed

scripts/install-extensions

Lines changed: 2 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,7 @@
11
#!/bin/bash
22
set -e
33

4-
# In java, the vscode extension contains a lot of code to implements advanced features (jdt files provider, inlay hints, source action commands...)
5-
# Instead of copy-pasting this code, let's download it, build it and import it from our code
6-
4+
rm -rf "`pwd`/extensions"
75
mkdir -p "`pwd`/extensions"
8-
output_directory="`pwd`/extensions/java"
9-
rm -rf $output_directory
10-
11-
build_directory=`mktemp -d`
12-
echo "Downloading extension in $build_directory..."
13-
14-
curl -L --max-redirs 5 https://github.com/redhat-developer/vscode-java/tarball/v1.8.0 | tar -xz -C $build_directory --strip-components=1 redhat-developer-vscode-java-a0ac341
15-
cd $build_directory
16-
17-
echo "Installing dependencies..."
18-
npm install -y
19-
20-
# Remove useless files
21-
rm -rf test
22-
23-
echo "Patching code..."
24-
cd src
25-
26-
# Change import syntax so it builds to ESM
27-
find . -type f -exec sed -E -i 's/import (.*) = require\((.*)\)/import * as \1 from \2/g' {} \;
28-
29-
# Import from vscode-languageclient/lib/common/api instead of vscode-languageclient/node
30-
sed -i -E 's/import \{ (.*)LanguageClient(.*) \} from [\x27"]vscode-languageclient\/node[\x27"];/import { \1BaseLanguageClient as LanguageClient\2 } from \x27vscode-languageclient\/lib\/common\/api\x27;/g' sourceAction.ts inlayHintsProvider.ts
31-
32-
# Change syntax due to incompatibility between vscode-languageclient versions
33-
sed -i -E 's/languageClient.protocol2CodeConverter.asWorkspaceEdit\(/await languageClient.protocol2CodeConverter.asWorkspaceEdit(/g' sourceAction.ts extension.ts
34-
sed -i 's/function applyWorkspaceEdit(obj, languageClient): Thenable<boolean>/async function applyWorkspaceEdit(obj, languageClient): Promise<boolean>/g' extension.ts
35-
36-
echo "Building extension..."
37-
tsc --declaration --importHelpers --module es2020 --outDir "$output_directory/"
386

39-
echo "Cleaning..."
40-
rm -rf $build_directory
7+
./scripts/install-java-extension

scripts/install-java-extension

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#!/bin/bash
2+
set -e
3+
4+
# In java, the vscode extension contains a lot of code to implements advanced features (jdt files provider, inlay hints, source action commands...)
5+
# Instead of copy-pasting this code, let's download it, build it and import it from our code
6+
7+
output_directory="`pwd`/extensions/java"
8+
9+
build_directory=`mktemp -d`
10+
echo "Downloading extension in $build_directory..."
11+
12+
curl -L --max-redirs 5 https://github.com/redhat-developer/vscode-java/tarball/v1.8.0 | tar -xz -C $build_directory --strip-components=1 redhat-developer-vscode-java-a0ac341
13+
cd $build_directory
14+
15+
echo "Installing dependencies..."
16+
npm install -y
17+
18+
# Remove useless files
19+
rm -rf test
20+
21+
echo "Patching code..."
22+
cd src
23+
24+
# Change import syntax so it builds to ESM
25+
find . -type f -exec sed -E -i 's/import (.*) = require\((.*)\)/import * as \1 from \2/g' {} \;
26+
27+
# Import from vscode-languageclient/lib/common/api instead of vscode-languageclient/node
28+
sed -i -E 's/import \{ (.*)LanguageClient(.*) \} from [\x27"]vscode-languageclient\/node[\x27"];/import { \1BaseLanguageClient as LanguageClient\2 } from \x27vscode-languageclient\/lib\/common\/api\x27;/g' sourceAction.ts inlayHintsProvider.ts
29+
30+
# Change syntax due to incompatibility between vscode-languageclient versions
31+
sed -i -E 's/languageClient.protocol2CodeConverter.asWorkspaceEdit\(/await languageClient.protocol2CodeConverter.asWorkspaceEdit(/g' sourceAction.ts extension.ts
32+
sed -i 's/function applyWorkspaceEdit(obj, languageClient): Thenable<boolean>/async function applyWorkspaceEdit(obj, languageClient): Promise<boolean>/g' extension.ts
33+
34+
echo "Building extension..."
35+
tsc --declaration --importHelpers --module es2020 --outDir "$output_directory/"
36+
37+
echo "Cleaning..."
38+
rm -rf $build_directory

0 commit comments

Comments
 (0)