let g:ycm_semantic_triggers = {"javascript": ["."], \"css,less,scss":[".","{",";",":"], \} 这句有什么问题
时间: 2023-11-06 10:05:34 浏览: 34
这句话没有问题,它是YouCompleteMe插件的相关配置,用于设置语义触发器,以便在编写代码时提供自动补全和语法检查等功能。其中,"javascript": ["."]表示在JavaScript文件中输入任何字符时触发自动补全,而"css,less,scss":[".","{",";",":"]表示在CSS、LESS和SCSS文件中输入"."、"{"、";"或":"时触发自动补全。
相关问题
.ycm_extra_conf.py
'b'.ycm_extra_conf.py'是一个文件名,可能是一种配置文件或者脚本文件的名称。根据文件名中的后缀名.py,可以猜测该文件可能使用Python语言编写。具体的含义需要根据上下文和具体应用场景来确定。
优化这段代码 switch (i) { case COM_COM_PCL: LCD_DisString((i%9)+1, 15, (char *)gcszLcdComPcl[(int)gRunPara.COMMS_SerialInfo[serialid][i].val]); break; case COM_COM_BR: LCD_DisString((i%9)+1, 15, (char *)gcszLcdComBaud[(int)gRunPara.COMMS_SerialInfo[serialid][i].val]); break; case COM_COM_PR: LCD_DisString((i%9)+1, 15, (char *)gcszComParity[(int)gRunPara.COMMS_SerialInfo[serialid][i].val]); break; case COM_COM_DIR: LCD_DisString((i%9)+1, 15, (char *)gcszStateName1[(int)gRunPara.COMMS_SerialInfo[serialid][i].val]); break; case COM_COM_YXM: LCD_DisString((i%9)+1, 15, (char *)gcszPoint[(int)gRunPara.COMMS_SerialInfo[serialid][i].val]); break; case COM_COM_YKM: LCD_DisString((i%9)+1, 15, (char *)gcszPoint[(int)gRunPara.COMMS_SerialInfo[serialid][i].val]); break; case COM_COM_YCM: LCD_DisString((i%9)+1, 15, (char *)gcszData[(int)gRunPara.COMMS_SerialInfo[serialid][i].val]); break; case COM_COM_JM: LCD_DisString((i%9)+1, 15, (char *)gcszLcdJmMode[(int)gRunPara.COMMS_SerialInfo[serialid][i].val]); break; case COM_COM_AREA: LCD_DisString((i%9)+1, 15, (char *)gcszLcdAreaMode[(int)gRunPara.COMMS_SerialInfo[serialid][i].val]); break; case COM_COM_SYNCTM: LCD_DisString((i%9)+1, 15, (char *)gcszLcdSynctmMode[(int)gRunPara.COMMS_SerialInfo[serialid][i].val]); break; case COM_COM_RS485: LCD_DisString((i%9)+1, 15, (char *)gcszLcdRSMode[(int)gRunPara.COMMS_SerialInfo[serialid][i].val]); break; default: break; }
可以考虑使用一个数组来存储每个case对应的要执行的函数,然后利用i作为索引调用对应的函数,避免了大量的重复代码,示例如下:
```
void (*displayFunc[])(int, int, char*) = {
NULL,
[COM_COM_PCL] = LCD_DisString,
[COM_COM_BR] = LCD_DisString,
[COM_COM_PR] = LCD_DisString,
[COM_COM_DIR] = LCD_DisString,
[COM_COM_YXM] = LCD_DisString,
[COM_COM_YKM] = LCD_DisString,
[COM_COM_YCM] = LCD_DisString,
[COM_COM_JM] = LCD_DisString,
[COM_COM_AREA] = LCD_DisString,
[COM_COM_SYNCTM] = LCD_DisString,
[COM_COM_RS485] = LCD_DisString,
};
void display(int i, int col, char* str) {
if (displayFunc[i] != NULL) {
displayFunc[i](i%9+1, col, str);
}
}
```
然后在原来的代码中,可以直接调用`display()`函数,示例如下:
```
display(i, 15, gcszLcdComPcl[(int)gRunPara.COMMS_SerialInfo[serialid][i].val]);
```
这样可以让代码更加简洁易读,且方便后续的维护和扩展。