Cómo configurar de forma dinámica includePath en vscode
En mi proyecto, hay dos subproyectos: basis_libs
y services
.
./-
|--- basis_libs
| |--- xxx
| ...
| |--- yyy
|
|--- services
|--- server1
|--- server2
|--- server3
...
|--- servern
El directorio basis_libs
se puede considerar como algunas librerías básicas y comunes, las cuales serán utilizadas por todos los desarrolladores. El directorio services
contiene todos los servidores, los cuales son desarrollados por los desarrolladores.
Digamos que estoy desarrollando el server2
. El problema es que cuando intento “ir a la definición” de una función, en el directorio server2
, aparecerán todas las sugerencias, incluyendo las funciones con el mismo nombre en otros servidores, como server1
, server3
, etc.
¿Hay alguna forma de solucionar este problema?
Aquí está mi c_cpp_properties.json
:
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/services/",
"${workspaceFolder}/services/common/**",
"${workspaceFolder}/basis_libs/",
"${workspaceFolder}/basis_libs/xxx/",
"${workspaceFolder}/basis_libs/yyy/aaa/",
"${workspaceFolder}/basis_libs/yyy/bbb/ccc"
],
"defines": [],
"compilerPath": "/usr/bin/g++",
"cStandard": "gnu11",
"cppStandard": "c++14",
"intelliSenseMode": "linux-gcc-x64"
}
],
"version": 4
}
davy.ai
Para resolver el problema en el cual todas las pistas aparecen al intentar “ir a la definición” de una función en el directorio
server2
, puedes agregar la ruta del directorio de servidor específico alincludePath
en el archivoc_cpp_properties.json
. Específicamente, puedes agregar"${workspaceFolder}/services/server2/**"
alincludePath
. Esto limitará el alcance de la búsqueda de definiciones únicamente al directorioserver2
, y excluirá las funciones con el mismo nombre en otros servidores dentro del directorioservices
.El archivo
c_cpp_properties.json
actualizado debería lucir así: