diff --git a/.github/workflows/.luarc.json b/.github/workflows/.luarc.json
new file mode 100644
index 00000000..2334034e
--- /dev/null
+++ b/.github/workflows/.luarc.json
@@ -0,0 +1,13 @@
+{
+ "$schema": "https://raw.githubusercontent.com/sumneko/vscode-lua/master/setting/schema.json",
+ "Lua.runtime.version": "LuaJIT",
+ "Lua.runtime.path": ["lua/?.lua", "lua/?/init.lua"],
+ "Lua.workspace.library": [
+ "/home/runner/work/yazi.nvim/yazi.nvim/lua_modules/share/lua/5.1",
+ "/home/runner/work/yazi.nvim/yazi.nvim/deps/neovim/runtime/lua",
+ "/home/runner/work/yazi.nvim/yazi.nvim/deps/neodev.nvim/types/stable",
+ "/home/runner/work/yazi.nvim/yazi.nvim/deps/plenary.nvim"
+ ],
+ "Lua.diagnostics.libraryFiles": "Disable",
+ "Lua.workspace.checkThirdParty": "Disable"
+}
diff --git a/.github/workflows/typecheck.yml b/.github/workflows/typecheck.yml
new file mode 100644
index 00000000..000f1cab
--- /dev/null
+++ b/.github/workflows/typecheck.yml
@@ -0,0 +1,50 @@
+# copied from https://github.com/nvim-neorg/neorg/blob/1e63f84f04caed4b8831b8122c4ba2e7dbda389f/.github/workflows/typecheck.yml#L17
+name: lua_ls-typecheck
+on:
+ pull_request: ~
+ push:
+ branches:
+ - "*"
+
+jobs:
+ build:
+ name: Type Check Code Base
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout Code
+ uses: actions/checkout@v4
+
+ - name: Checkout dependency neodev # get neodev and neovim/runtime for builtin types
+ uses: actions/checkout@v4
+ with:
+ repository: "folke/neodev.nvim"
+ path: "deps/neodev.nvim"
+
+ - name: Checkout dependency plenary
+ uses: actions/checkout@v4
+ with:
+ repository: "nvim-lua/plenary.nvim"
+ path: "deps/plenary.nvim"
+
+ - name: Checkout neovim for type annotations
+ uses: actions/checkout@v3
+ with:
+ repository: "neovim/neovim"
+ path: "deps/neovim"
+
+ - uses: leafo/gh-actions-lua@v9 # get luarocks dependencies for their types (eg `PathlibPath`)
+ with:
+ luaVersion: "5.1"
+ - uses: leafo/gh-actions-luarocks@v4
+ - name: install dependencies
+ run: |
+ luarocks init
+ luarocks install --only-deps ./*.rockspec
+
+ - name: Typecheck the code base
+ uses: mrcjkb/lua-typecheck-action@v0.2.1
+ with:
+ configpath: .github/workflows/.luarc.json
+ directories: |
+ lua
diff --git a/README.md b/README.md
index 69a39b53..ee2d5e96 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,9 @@
# 🎲 A Neovim Plugin for [yazi](https://github.com/sxyazi/yazi.git)
-
-
+
+
+[![Type checked codebase](https://github.com/mrcjkb/lua-typecheck-action/actions/workflows/typecheck.yml/badge.svg)](https://github.com/mrcjkb/lua-typecheck-action/actions/workflows/typecheck.yml)
Yazi is a blazing fast file manager for the terminal. This plugin allows you to
open yazi in a floating window in Neovim.