format cpp and update tsl.vim
This commit is contained in:
parent
b339df7bc5
commit
d9beeb82a6
|
|
@ -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";
|
|
||||||
|
|
||||||
// 使用 write 系统调用,绕过 C++ 流的缓冲和转换
|
|
||||||
std::cout.write(header.c_str(), header.length());
|
|
||||||
std::cout.write(response_str.c_str(), response_str.length());
|
|
||||||
std::cout.flush();
|
|
||||||
|
|
||||||
log::Verbose("Response sent successfully2");
|
|
||||||
|
|
||||||
|
// 构建完整消息
|
||||||
|
std::string header = "Content-Length: " + std::to_string(byte_length) + "\r\n\r\n";
|
||||||
|
|
||||||
|
// 使用 write 系统调用,绕过 C++ 流的缓冲和转换
|
||||||
|
std::cout.write(header.c_str(), header.length());
|
||||||
|
std::cout.write(response_str.c_str(), response_str.length());
|
||||||
|
std::cout.flush();
|
||||||
|
|
||||||
|
log::Verbose("Response sent successfully");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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));
|
||||||
|
|
||||||
|
|
|
||||||
41
vim/tsl.vim
41
vim/tsl.vim
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue