11use std:: collections:: HashMap ;
22
3- use emmylua_parser:: { LuaFeatures , LuaVersionNumber , SpecialFunction } ;
3+ use emmylua_parser:: { LuaFeatures , LuaLanguageLevel , LuaVersionNumber , SpecialFunction } ;
44use schemars:: JsonSchema ;
55use serde:: de:: Deserializer ;
66use serde:: { Deserialize , Serialize } ;
@@ -42,6 +42,8 @@ pub enum EmmyrcLuaVersion {
4242 LuaJIT ,
4343 #[ serde( rename = "LuaJIT-Ext" , alias = "LuaJIT Ext" ) ]
4444 LuaJITExt ,
45+ #[ serde( rename = "LuaJIT3" , alias = "LuaJIT 3" ) ]
46+ LuaJIT3 ,
4547 /// Lua 5.2
4648 #[ serde( rename = "Lua5.2" , alias = "Lua 5.2" ) ]
4749 Lua52 ,
@@ -66,13 +68,28 @@ impl EmmyrcLuaVersion {
6668 EmmyrcLuaVersion :: Lua51 => LuaVersionNumber :: new ( 5 , 1 , 0 ) ,
6769 EmmyrcLuaVersion :: LuaJIT => LuaVersionNumber :: LUA_JIT ,
6870 EmmyrcLuaVersion :: LuaJITExt => LuaVersionNumber :: LUA_JIT_EXT ,
71+ EmmyrcLuaVersion :: LuaJIT3 => LuaVersionNumber :: LUA_JIT3 ,
6972 EmmyrcLuaVersion :: Lua52 => LuaVersionNumber :: new ( 5 , 2 , 0 ) ,
7073 EmmyrcLuaVersion :: Lua53 => LuaVersionNumber :: new ( 5 , 3 , 0 ) ,
7174 EmmyrcLuaVersion :: Lua54 => LuaVersionNumber :: new ( 5 , 4 , 0 ) ,
7275 EmmyrcLuaVersion :: LuaLatest => LuaVersionNumber :: new ( 5 , 4 , 0 ) ,
7376 EmmyrcLuaVersion :: Lua55 => LuaVersionNumber :: new ( 5 , 5 , 0 ) ,
7477 }
7578 }
79+
80+ pub fn get_language_level ( & self ) -> LuaLanguageLevel {
81+ match self {
82+ EmmyrcLuaVersion :: Lua51 => LuaLanguageLevel :: Lua51 ,
83+ EmmyrcLuaVersion :: LuaJIT => LuaLanguageLevel :: LuaJIT ,
84+ EmmyrcLuaVersion :: LuaJITExt => LuaLanguageLevel :: LuaJITExt ,
85+ EmmyrcLuaVersion :: LuaJIT3 => LuaLanguageLevel :: LuaJIT3 ,
86+ EmmyrcLuaVersion :: Lua52 => LuaLanguageLevel :: Lua52 ,
87+ EmmyrcLuaVersion :: Lua53 => LuaLanguageLevel :: Lua53 ,
88+ EmmyrcLuaVersion :: Lua54 => LuaLanguageLevel :: Lua54 ,
89+ EmmyrcLuaVersion :: LuaLatest => LuaLanguageLevel :: Lua55 ,
90+ EmmyrcLuaVersion :: Lua55 => LuaLanguageLevel :: Lua55 ,
91+ }
92+ }
7693}
7794
7895#[ allow( unused) ]
@@ -127,7 +144,7 @@ impl From<EmmyrcNonStdSymbol> for LuaFeatures {
127144 match symbol {
128145 EmmyrcNonStdSymbol :: DoubleSlash => LuaFeatures :: DoubleSlash ,
129146 EmmyrcNonStdSymbol :: SlashStar => LuaFeatures :: SlashStar ,
130- EmmyrcNonStdSymbol :: Backtick => LuaFeatures :: Backtick ,
147+ EmmyrcNonStdSymbol :: Backtick => LuaFeatures :: StringInterpolation ,
131148 EmmyrcNonStdSymbol :: PlusAssign => LuaFeatures :: PlusAssign ,
132149 EmmyrcNonStdSymbol :: MinusAssign => LuaFeatures :: MinusAssign ,
133150 EmmyrcNonStdSymbol :: StarAssign => LuaFeatures :: StarAssign ,
0 commit comments