package main import ( "encoding/json" "fmt" "os" "path/filepath" "strconv" "time" "github.com/raiguard/luapls/lsp" "github.com/raiguard/luapls/lua/ast" "github.com/raiguard/luapls/lua/lexer" "github.com/raiguard/luapls/lua/parser" "github.com/raiguard/luapls/lua/token" "github.com/raiguard/luapls/lua/types" "github.com/raiguard/luapls/repl" "github.com/tliron/kutil/util" ) func main() { args := os.Args task := "lsp" if len(args) > 1 { task = args[1] } switch task { case "lex": if len(args) < 3 { fmt.Fprintln(os.Stderr, "Did not provide a filename") os.Exit(1) } lexFile(args[2]) case "lsp": level := int64(0) if len(args) > 2 { level, _ = strconv.ParseInt(args[2], 0, 8) } lsp.Run(int(level)) case "parse": if len(args) < 3 { fmt.Fprintln(os.Stderr, "Did not provide a filename") os.Exit(1) } parseFile(args[2]) case "make-test": if len(args) < 4 { fmt.Fprintln(os.Stderr, "Not enough arguments: luapls make-test