format cpp and update tsl.vim

This commit is contained in:
csh 2025-06-24 18:20:37 +08:00
parent b339df7bc5
commit d9beeb82a6
3 changed files with 41 additions and 39 deletions

View File

@ -121,24 +121,24 @@ namespace lsp
log::Debug("Response length: ", byte_length); log::Debug("Response length: ", byte_length);
log::Debug("Raw response content: [", response_str, "]"); log::Debug("Raw response content: [", response_str, "]");
// 在程序启动时设置stdout为二进制模式只需设置一次 // 在程序启动时设置stdout为二进制模式只需设置一次
static bool binary_mode_set = false; static bool binary_mode_set = false;
if (!binary_mode_set) { if (!binary_mode_set)
{
#ifdef _WIN32 #ifdef _WIN32
_setmode(_fileno(stdout), _O_BINARY); _setmode(_fileno(stdout), _O_BINARY);
#endif #endif
binary_mode_set = true; binary_mode_set = true;
} }
// 构建完整消息 // 构建完整消息
std::string header = "Content-Length: " + std::to_string(byte_length) + "\r\n\r\n"; std::string header = "Content-Length: " + std::to_string(byte_length) + "\r\n\r\n";
// 使用 write 系统调用,绕过 C++ 流的缓冲和转换 // 使用 write 系统调用,绕过 C++ 流的缓冲和转换
std::cout.write(header.c_str(), header.length()); std::cout.write(header.c_str(), header.length());
std::cout.write(response_str.c_str(), response_str.length()); std::cout.write(response_str.c_str(), response_str.length());
std::cout.flush(); std::cout.flush();
log::Verbose("Response sent successfully2");
log::Verbose("Response sent successfully");
} }
} }

View File

@ -2,9 +2,11 @@
// 字符串,数字,注释 // 字符串,数字,注释
// 注释 TODO // 注释 TODO
// abc();
a := "string"; // 字符串 a := "string"; // 字符串
b := 123; // 数字 b := 123; // 数字
c := 1.23; // 浮点数 c := 1.23; // 浮点数
a := "字符串函数func()";
// 类相关 // 类相关
@ -47,13 +49,14 @@ function f(a: real = 1; b: string = "123"; c: number = abc.CONST1): def; // 带
f(); f();
f(a, b); f(a, b);
f(a: 1; b: 's'); f(a: 1; b: 's');
f(f(2, "111"));
// 类变量声明,三元表达式(不应该有冲突) // 类变量声明,三元表达式(不应该有冲突)
a: string; a: string;
[weakref]b: MyClass; [weakref]b: MyClass;
a ? b : c; a ? b : c;
a ? b : c ? d : e; a ? b : c ? d : e;
return ifnil(rpr_.Caps) ? false : rpr_.Caps.IsApplied;
// select // select
Select ["test"] from table end; Select ["test"] from table end;
@ -62,5 +65,5 @@ select distinct ["test"] from table where ['a'] = 1 end;
// array // array
a := array(1, 2); a := array(1, 2);
b := array((1, 2), (3, 4)) b := array((1, 2), (3, 4));

View File

@ -13,7 +13,7 @@ syn case ignore
# Keywords # Keywords
# 程序结构声明 # 程序结构声明
syn keyword tslProgramStructure program function procedure nextgroup=tslFuncName skipwhite syn keyword tslProgramStructure program function procedure nextgroup=tslFuncName skipwhite
syn keyword tslModuleStructure unit uses implementation interface initalization finalization syn keyword tslModuleStructure unit uses implementation interface initialization finalization
# 数据类型 # 数据类型
syn keyword tslPrimitiveType string integer boolean int64 real array syn keyword tslPrimitiveType string integer boolean int64 real array
@ -87,9 +87,9 @@ syn match tslReturnType ':\s*[^;]*' contained contains=tslColon
syn match tslParamSep '[;,]' contained syn match tslParamSep '[;,]' contained
syn match tslColon ':' contained syn match tslColon ':' contained
syn match tslVarDecl '\(?\s*\)\@<!\h\w*\s*:=\@!\s*[^;?]*;' contains=tslVarName,tslVarType syn match tslVarDecl '\(?\s\)\@<!\h\w\s:=\@!\s[^;?];' contains=tslVarName,tslVarType
syn match tslVarName '\(?\s*\)\@<!\h\w*\ze\s*:=\@!' contained syn match tslVarName '\(?\s\)\@<!\h\w\ze\s:=\@!' contained
syn match tslVarType ':=\@!\s*[^;?]*' contained contains=tslColon syn match tslVarType ':=\@!\s[^;?]' contained contains=tslColon
# 匹配完整的属性链 # 匹配完整的属性链
syn match tslPropertyChain '\h\w*\%(\.\h\w*\)\+' contains=tslObjectName,tslPropertyDot,tslPropertyName syn match tslPropertyChain '\h\w*\%(\.\h\w*\)\+' contains=tslObjectName,tslPropertyDot,tslPropertyName
@ -99,31 +99,30 @@ syn match tslPropertyName '\.\@<=\h\w*\%(\ze\.\|\ze\s*[^(]\|\ze\s*$\)' contain
# Function calls # Function calls
syn match tslFuncCallName '\%(\<\%(function\|procedure\)\s\+\%(\h\w*\.\)\?\)\@<!\h\w*\ze\s*(' syn match tslFuncCallName '\%(\<\%(function\|procedure\)\s\+\%(\h\w*\.\)\?\)\@<!\h\w*\ze\s*('
\ containedin=ALLBUT,tslFuncParams,tslPropertyChain,tslFunction,tslFuncName,tslFuncNamePart \ containedin=ALLBUT,tslFuncParams,tslPropertyChain,tslFunction,tslFuncName,tslFuncNamePart,tslComment,tslString,tslRawString
syn region tslFuncCall syn region tslFuncCall
\ start='\%(\<\h\w*\s*(\)' \ start='\h\w*\s*(\zs'
\ end=')' \ end='\ze)'
\ contains=tslCallParams,tslCallSep,tslCallValue,tslCallParam,tslString,tslNumber,tslIdentifier,tslOperator \ contains=tslFuncCallName,tslFuncCall,tslNamedParam,tslPositionalParam,tslString,tslRawString,tslNumber,tslIdentifier,tslOperator,tslParamSep
\ transparent \ transparent
syn region tslCallParams syn match tslNamedParam '\h\w*\s*:\s*[^;,)]*' contained
\ start='\%(\<\h\w*\s*(\)\zs' \ contains=tslParamName,tslParamColon,tslParamValue
\ end='\ze)'
\ contained syn match tslParamName '\h\w*\ze\s*:' contained
\ contains=tslCallParam,tslCallValue,tslCallSep,tslString,tslNumber,tslIdentifier,tslOperator,tslFuncCall syn match tslParamColon ':' contained
syn match tslParamValue ':\s*\zs[^;,)]*' contained
\ contains=tslString,tslNumber,tslIdentifier,tslOperator,tslFuncCall,tslFuncCallName
syn match tslPositionalParam '[^;,():]*' contained
\ contains=tslString,tslNumber,tslIdentifier,tslOperator,tslFuncCall,tslFuncCallName
syn match tslParamSep '[;,]' contained
syn match tslCallParam '\h\w*\ze\s*:' contained
syn match tslCallValue ':\s*\zs[^;)]*' contained
syn match tslCallValue
\ ':\s*\zs\\%([^;,)]\+\|.\{-}\%([;,)]\|$\))'
\ contained
\ contains=tslString,tslNumber,tslIdentifier,tslOperator,tslFunctionCall
syn match tslCallSep '[;,]' contained
# Operators and delimiters # Operators and delimiters
syn match tslOperator '[+\-*/<>=!&|^~%]' syn match tslOperator '[+\-*/<>=!&|^~%]'
syn match tslOperator ':='
syn match tslDelimiter '[()[\]{},;:.@?]' syn match tslDelimiter '[()[\]{},;:.@?]'
# Comments # Comments