Skip to content

Commit 2057ef5

Browse files
authored
feat: Add Nevermore-VSCode extension (#625)
1 parent 22144a1 commit 2057ef5

File tree

12 files changed

+4828
-1
lines changed

12 files changed

+4828
-1
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: Extension Release
2+
3+
on:
4+
workflow_dispatch:
5+
6+
jobs:
7+
extension-release:
8+
name: Release Extension
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@v4
12+
13+
- run: npm ci
14+
working-directory: tools/nevrmoree-vscode
15+
16+
- name: Publish VSCode Extension
17+
working-directory: tools/nevermore-vscode
18+
run: npx vsce publish --pat ${{ secrets.MARKETPLACE_TOKEN }}

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ dist
1111
*.tsbuildinfo
1212
.DS_Store
1313
globalTypes.d.lua
14+
*.vsix
1415

1516
# Normally it's a good idea to commit this. However, in this mono-repo scenario with linking
1617
# it adds a ton of noise and no real gain. Also we have seen no gains from reproducing

.vscode/extensions.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"recommendations": [
3+
"quenty.nevermore-vscode",
34
"kampfkarren.selene-vscode",
45
"johnnymorganz.luau-lsp",
56
"johnnymorganz.stylua"

LICENSE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2014-2025 James Onnen (Quenty)
3+
Copyright (c) 2014-2026 James Onnen (Quenty)
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

docs/ides/vscode.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Getting started with VSCode
2+
3+
VSCode works with Nevermore relatively easily. We have default extensions.json setup. Follow the general setup tips. This types should generally work for Cursor and other VS-Code based IDEs.
4+
5+
## Extensions
6+
7+
Nevermore uses standard community extensions, including the following:
8+
9+
* quenty.nevermore-vscode
10+
* kampfkarren.selene-vscode
11+
* johnnymorganz.luau-lsp
12+
* johnnymorganz.stylua
13+
14+
These will provide snippets, styling, and linking.
15+
16+
## Configuration of Luau-LSP
17+
18+
You currently must use the forked version of luau-lsp. You can use the default extension.
19+
20+
in `settings.json` configure the luau-lsp server to point towards a custom exe path. This should be your Luau-lsp exe path installed via aftman.toml.
21+
22+
```json
23+
"luau-lsp.server.path": "C:/Users/James Onnen/.aftman/tool-storage/quenty/luau-lsp/1.58.0-quenty.1/luau-lsp.exe",
24+
```
25+
26+
## Other helpful settings for consumption
27+
28+
In your user-settings the following settings can be helpful:
29+
30+
```json
31+
"[lua]": {
32+
"editor.defaultFormatter": "JohnnyMorganz.stylua",
33+
"editor.formatOnSave": true,
34+
"editor.formatOnSaveMode": "file"
35+
},
36+
"[luau]": {
37+
"editor.defaultFormatter": "JohnnyMorganz.stylua",
38+
"editor.formatOnSave": true,
39+
"editor.formatOnSaveMode": "file"
40+
},
41+
42+
// Explorer
43+
"explorer.confirmDragAndDrop": false,
44+
"explorer.compactFolders": false,
45+
46+
// Make init files not horrible
47+
"explorer.fileNesting.enabled": true,
48+
"explorer.fileNesting.patterns": {
49+
"init.lua": "*.lua",
50+
"*": "${basename}.*.${extname}"
51+
},
52+
"workbench.editor.customLabels.patterns": {
53+
"**/init.lua": "${dirname}.lua"
54+
},
55+
```
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"recommendations": [
3+
"quenty.nevermore-vscode",
4+
"kampfkarren.selene-vscode",
5+
"johnnymorganz.luau-lsp",
6+
"johnnymorganz.stylua"
7+
]
8+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"files.exclude": {
3+
"*.sublime-workspace": true,
4+
"**/node_modules/**": true,
5+
"roblox.toml": true
6+
},
7+
"luau-lsp.sourcemap.rojoProjectFile": "default.project.json",
8+
"luau-lsp.ignoreGlobs": ["**/node_modules/**"],
9+
"[lua]": {
10+
"editor.defaultFormatter": "JohnnyMorganz.stylua",
11+
"editor.formatOnSave": true,
12+
"editor.formatOnSaveMode": "file"
13+
},
14+
"[luau]": {
15+
"editor.defaultFormatter": "JohnnyMorganz.stylua",
16+
"editor.formatOnSave": true,
17+
"editor.formatOnSaveMode": "file"
18+
}
19+
}

tools/nevermore-vscode/LICENSE.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2014-2026 James Onnen (Quenty)
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 all
13+
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 THE
21+
SOFTWARE.

tools/nevermore-vscode/README.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Nevermore-VSCode
2+
3+
This provides snippets for Nevermore for VSCode that help with boiler-plate. For example, you can do type `class` in Lua document, and it will generate a Lua class.
4+
5+
Note that sometimes this can lead to built-in patterns emerging that are maybe more verbose than intended. Please consider updating the snippets as Nevermore develops to reduce boilerplate.
6+
7+
## Building locally
8+
Basic approach:
9+
10+
```bash
11+
npm run build:install
12+
```
13+
14+
Manual approach:
15+
16+
```bash
17+
npm install -g @vscode/vsce
18+
vsce package
19+
code --install-extension roblox-lua-snippets-1.0.0.vsix
20+
```

0 commit comments

Comments
 (0)