zugzbot 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +99 -23
  2. package/bin/init.js +1 -2
  3. package/package.json +2 -3
  4. package/.utils/docs_opencode/acp.md +0 -165
  5. package/.utils/docs_opencode/acp.pdf +0 -0
  6. package/.utils/docs_opencode/agents.md +0 -803
  7. package/.utils/docs_opencode/agents.pdf +0 -0
  8. package/.utils/docs_opencode/commands.md +0 -354
  9. package/.utils/docs_opencode/commands.pdf +0 -0
  10. package/.utils/docs_opencode/custom-tools.md +0 -209
  11. package/.utils/docs_opencode/custom-tools.pdf +0 -0
  12. package/.utils/docs_opencode/ecosystem.md +0 -81
  13. package/.utils/docs_opencode/ecosystem.pdf +0 -0
  14. package/.utils/docs_opencode/formatters.md +0 -142
  15. package/.utils/docs_opencode/formatters.pdf +0 -0
  16. package/.utils/docs_opencode/keybinds.md +0 -205
  17. package/.utils/docs_opencode/keybinds.pdf +0 -0
  18. package/.utils/docs_opencode/lsp.md +0 -202
  19. package/.utils/docs_opencode/lsp.pdf +0 -0
  20. package/.utils/docs_opencode/mcp-servers.md +0 -565
  21. package/.utils/docs_opencode/mcp-servers.pdf +0 -0
  22. package/.utils/docs_opencode/models.md +0 -234
  23. package/.utils/docs_opencode/models.pdf +0 -0
  24. package/.utils/docs_opencode/permissions.md +0 -248
  25. package/.utils/docs_opencode/permissions.pdf +0 -0
  26. package/.utils/docs_opencode/plugins.md +0 -409
  27. package/.utils/docs_opencode/plugins.pdf +0 -0
  28. package/.utils/docs_opencode/rules.md +0 -189
  29. package/.utils/docs_opencode/rules.pdf +0 -0
  30. package/.utils/docs_opencode/sdk.md +0 -522
  31. package/.utils/docs_opencode/sdk.pdf +0 -0
  32. package/.utils/docs_opencode/server.md +0 -324
  33. package/.utils/docs_opencode/server.pdf +0 -0
  34. package/.utils/docs_opencode/skills.md +0 -235
  35. package/.utils/docs_opencode/skills.pdf +0 -0
  36. package/.utils/docs_opencode/themes.md +0 -378
  37. package/.utils/docs_opencode/themes.pdf +0 -0
  38. package/.utils/docs_opencode/tools.md +0 -364
  39. package/.utils/docs_opencode/tools.pdf +0 -0
  40. package/.utils/export_opencode_session.py +0 -242
  41. package/.utils/toggle_model.py +0 -208
@@ -1,142 +0,0 @@
1
- # Formateadores
2
-
3
- OpenCode utiliza formateadores específicos del idioma.
4
-
5
- OpenCode formatea automáticamente los archivos después de escribirlos o editarlos utilizando formateadores específicos del idioma. Esto garantiza que el código generado siga los estilos de código de su proyecto.
6
-
7
- ---
8
-
9
- ## [Integrados](#integrados)
10
-
11
- OpenCode viene con varios formateadores integrados para lenguajes y marcos populares. A continuación se muestra una lista de los formateadores, las extensiones de archivo compatibles y los comandos u opciones de configuración que necesita.
12
- ````[más](https://prettier.io/docs/en/index.html)````[más](https://biomejs.dev/)````[más](https://clang.llvm.org/docs/ClangFormat.html)````````````````````````````````````````````[indicador de variable de entorno experimental](https://opencode.ai/docs/cli/#experimental)``
13
-
14
- | Formateador Extensiones Requisitos |
15
- | --- |
16
- | gofmt .go Comando gofmt disponible |
17
- | mix .ex, .exs, .eex, .heex, .leex, .neex, .sface Comando mix disponible |
18
- | prettier .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml y dependencia prettier en package.json |
19
- | biome .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml y biome.json(c) archivo de configuración |
20
- | zig .zig, .zon Comando zig disponible |
21
- | clang-format .c, .cpp, .h, .hpp, .ino y .clang-format archivo de configuración |
22
- | ktlint .kt, .kts Comando ktlint disponible |
23
- | ruff .py, .pyi Comando ruff disponible con configuración |
24
- | rustfmt .rs Comando rustfmt disponible |
25
- | cargo fmt .rs Comando cargo fmt disponible |
26
- | uv .py, .pyi Comando uv disponible |
27
- | rubocop .rb, .rake, .gemspec, .ru Comando rubocop disponible |
28
- | standardrb .rb, .rake, .gemspec, .ru Comando standardrb disponible |
29
- | htmlbeautifier .erb, .html.erb Comando htmlbeautifier disponible |
30
- | air .R Comando air disponible |
31
- | dart .dart Comando dart disponible |
32
- | dfmt .d Comando dfmt disponible |
33
- | ocamlformat .ml, .mli Comando ocamlformat disponible y archivo de configuración .ocamlformat |
34
- | terraform .tf, .tfvars Comando terraform disponible |
35
- | gleam .gleam Comando gleam disponible |
36
- | nixfmt .nix Comando nixfmt disponible |
37
- | shfmt .sh, .bash Comando shfmt disponible |
38
- | pint .php dependencia laravel/pint en composer.json |
39
- | oxfmt (Experimental) .js, .jsx, .ts, .tsx Dependencia de oxfmt en package.json y un |
40
- | ormolu .hs Comando ormolu disponible |
41
-
42
-
43
- Entonces, si su proyecto tiene `prettier` en su `package.json`, OpenCode lo usará automáticamente.
44
-
45
- ---
46
-
47
- ## [Cómo funciona](#cómo-funciona)
48
-
49
- Cuando OpenCode escribe o edita un archivo:
50
-
51
- 1. Comprueba la extensión del archivo con todos los formateadores habilitados.
52
- 1. Ejecuta el comando de formateo apropiado en el archivo.
53
- 1. Aplica los cambios de formato automáticamente.
54
-
55
- Este proceso ocurre en segundo plano, lo que garantiza que los estilos de su código se mantengan sin ningún paso manual.
56
-
57
- ---
58
-
59
- ## [Configuración](#configuración)
60
-
61
- Puede personalizar los formateadores a través de la sección `formatter` en su configuración OpenCode.
62
-
63
- **File**: opencode.json
64
-
65
- ```json
66
- {
67
- "$schema": "https://opencode.ai/config.json",
68
- "formatter": {}
69
- }
70
- ```
71
-
72
- Cada configuración del formateador admite lo siguiente:
73
- ``````````
74
-
75
- | Propiedad Tipo Descripción |
76
- | --- |
77
- | disabled booleano Establezca esto en true para deshabilitar el formateador |
78
- | command cadena[] El comando a ejecutar para formatear |
79
- | environment objeto Variables de entorno para configurar al ejecutar el formateador |
80
- | extensions cadena[] Extensiones de archivo que este formateador debería manejar |
81
-
82
-
83
- Veamos algunos ejemplos.
84
-
85
- ---
86
-
87
- ### [Deshabilitar formateadores](#deshabilitar-formateadores)
88
-
89
- Para deshabilitar **todos** los formateadores globalmente, configure `formatter` en `false`:
90
-
91
- **File**: opencode.json
92
-
93
- ```json
94
- {
95
- "$schema": "https://opencode.ai/config.json",
96
- "formatter": false
97
- }
98
- ```
99
-
100
- Para deshabilitar un formateador **específico**, establezca `disabled` en `true`:
101
-
102
- **File**: opencode.json
103
-
104
- ```json
105
- {
106
- "$schema": "https://opencode.ai/config.json",
107
- "formatter": {
108
- "prettier": {
109
- "disabled": true
110
- }
111
- }
112
- }
113
- ```
114
-
115
- ---
116
-
117
- ### [Formateadores personalizados](#formateadores-personalizados)
118
-
119
- Puede anular los formateadores integrados o agregar otros nuevos especificando el comando, las variables de entorno y las extensiones de archivo:
120
-
121
- **File**: opencode.json
122
-
123
- ```json
124
- {
125
- "$schema": "https://opencode.ai/config.json",
126
- "formatter": {
127
- "prettier": {
128
- "command": ["npx", "prettier", "--write", "$FILE"],
129
- "environment": {
130
- "NODE_ENV": "development"
131
- },
132
- "extensions": [".js", ".ts", ".jsx", ".tsx"]
133
- },
134
- "custom-markdown-formatter": {
135
- "command": ["deno", "fmt", "$FILE"],
136
- "extensions": [".md"]
137
- }
138
- }
139
- }
140
- ```
141
-
142
- El marcador de posición **`$FILE`** en el comando se reemplazará con la ruta al archivo que se está formateando.
Binary file
@@ -1,205 +0,0 @@
1
- # Combinaciones de teclas
2
-
3
- Personaliza tus combinaciones de teclas.
4
-
5
- OpenCode tiene una lista de combinaciones de teclas que puede personalizar a través de `tui.json`.
6
-
7
- **File**: tui.json
8
-
9
- ```json
10
- {
11
- "$schema": "https://opencode.ai/tui.json",
12
- "keybinds": {
13
- "leader": "ctrl+x",
14
- "app_exit": "ctrl+c,ctrl+d,q",
15
- "editor_open": "e",
16
- "theme_list": "t",
17
- "sidebar_toggle": "b",
18
- "scrollbar_toggle": "none",
19
- "username_toggle": "none",
20
- "status_view": "s",
21
- "tool_details": "none",
22
- "session_export": "x",
23
- "session_new": "n",
24
- "session_list": "l",
25
- "session_timeline": "g",
26
- "session_fork": "none",
27
- "session_rename": "none",
28
- "session_share": "none",
29
- "session_unshare": "none",
30
- "session_interrupt": "escape",
31
- "session_compact": "c",
32
- "session_child_first": "down",
33
- "session_child_cycle": "right",
34
- "session_child_cycle_reverse": "left",
35
- "session_parent": "up",
36
- "messages_page_up": "pageup,ctrl+alt+b",
37
- "messages_page_down": "pagedown,ctrl+alt+f",
38
- "messages_line_up": "ctrl+alt+y",
39
- "messages_line_down": "ctrl+alt+e",
40
- "messages_half_page_up": "ctrl+alt+u",
41
- "messages_half_page_down": "ctrl+alt+d",
42
- "messages_first": "ctrl+g,home",
43
- "messages_last": "ctrl+alt+g,end",
44
- "messages_next": "none",
45
- "messages_previous": "none",
46
- "messages_copy": "y",
47
- "messages_undo": "u",
48
- "messages_redo": "r",
49
- "messages_last_user": "none",
50
- "messages_toggle_conceal": "h",
51
- "model_list": "m",
52
- "model_cycle_recent": "f2",
53
- "model_cycle_recent_reverse": "shift+f2",
54
- "model_cycle_favorite": "none",
55
- "model_cycle_favorite_reverse": "none",
56
- "variant_cycle": "ctrl+t",
57
- "variant_list": "none",
58
- "command_list": "ctrl+p",
59
- "agent_list": "a",
60
- "agent_cycle": "tab",
61
- "agent_cycle_reverse": "shift+tab",
62
- "input_clear": "ctrl+c",
63
- "input_paste": "ctrl+v",
64
- "input_submit": "return",
65
- "input_newline": "shift+return,ctrl+return,alt+return,ctrl+j",
66
- "input_move_left": "left,ctrl+b",
67
- "input_move_right": "right,ctrl+f",
68
- "input_move_up": "up",
69
- "input_move_down": "down",
70
- "input_select_left": "shift+left",
71
- "input_select_right": "shift+right",
72
- "input_select_up": "shift+up",
73
- "input_select_down": "shift+down",
74
- "input_line_home": "ctrl+a",
75
- "input_line_end": "ctrl+e",
76
- "input_select_line_home": "ctrl+shift+a",
77
- "input_select_line_end": "ctrl+shift+e",
78
- "input_visual_line_home": "alt+a",
79
- "input_visual_line_end": "alt+e",
80
- "input_select_visual_line_home": "alt+shift+a",
81
- "input_select_visual_line_end": "alt+shift+e",
82
- "input_buffer_home": "home",
83
- "input_buffer_end": "end",
84
- "input_select_buffer_home": "shift+home",
85
- "input_select_buffer_end": "shift+end",
86
- "input_delete_line": "ctrl+shift+d",
87
- "input_delete_to_line_end": "ctrl+k",
88
- "input_delete_to_line_start": "ctrl+u",
89
- "input_backspace": "backspace,shift+backspace",
90
- "input_delete": "ctrl+d,delete,shift+delete",
91
- "input_undo": "ctrl+-,super+z",
92
- "input_redo": "ctrl+.,super+shift+z",
93
- "input_word_forward": "alt+f,alt+right,ctrl+right",
94
- "input_word_backward": "alt+b,alt+left,ctrl+left",
95
- "input_select_word_forward": "alt+shift+f,alt+shift+right",
96
- "input_select_word_backward": "alt+shift+b,alt+shift+left",
97
- "input_delete_word_forward": "alt+d,alt+delete,ctrl+delete",
98
- "input_delete_word_backward": "ctrl+w,ctrl+backspace,alt+backspace",
99
- "history_previous": "up",
100
- "history_next": "down",
101
- "terminal_suspend": "ctrl+z",
102
- "terminal_title_toggle": "none",
103
- "tips_toggle": "h",
104
- "display_thinking": "none"
105
- }
106
- }
107
- ```
108
-
109
- ---
110
-
111
- ## [Tecla líder](#tecla-líder)
112
-
113
- OpenCode usa una tecla `leader` para la mayoría de las combinaciones de teclas. Esto evita conflictos en tu terminal.
114
-
115
- De forma predeterminada, `ctrl+x` es la tecla principal y la mayoría de las acciones requieren que primero presione la tecla principal y luego el acceso directo. Por ejemplo, para iniciar una nueva sesión, primero presione `ctrl+x` y luego presione `n`.
116
-
117
- No es necesario utilizar una tecla líder para las combinaciones de teclas, pero le recomendamos que lo haga.
118
-
119
- ---
120
-
121
- ## [Desactivar combinación de teclas](#desactivar-combinación-de-teclas)
122
-
123
- Puede deshabilitar una combinación de teclas agregando la clave a `tui.json` con un valor de “none”.
124
-
125
- **File**: tui.json
126
-
127
- ```json
128
- {
129
- "$schema": "https://opencode.ai/tui.json",
130
- "keybinds": {
131
- "session_compact": "none"
132
- }
133
- }
134
- ```
135
-
136
- ---
137
-
138
- ## [Atajos de mensajes de escritorio](#atajos-de-mensajes-de-escritorio)
139
-
140
- La entrada de solicitud de la aplicación de escritorio OpenCode admite atajos comunes de estilo Readline/Emacs para editar texto. Estos están integrados y actualmente no se pueden configurar a través de `opencode.json`.
141
- ``````````````````````````
142
-
143
- | Atajo Acción |
144
- | --- |
145
- | ctrl+a Mover al inicio de la línea actual |
146
- | ctrl+e Mover al final de la línea actual |
147
- | ctrl+b Mover el cursor hacia atrás un carácter |
148
- | ctrl+f Mover el cursor hacia adelante un carácter |
149
- | alt+b Mover el cursor hacia atrás una palabra |
150
- | alt+f Mover el cursor hacia adelante una palabra |
151
- | ctrl+d Eliminar carácter debajo del cursor |
152
- | ctrl+k Borrar hasta el final de la línea |
153
- | ctrl+u Borrar al inicio de la línea |
154
- | ctrl+w Borrar palabra anterior |
155
- | alt+d Borrar la siguiente palabra |
156
- | ctrl+t Transponer caracteres |
157
- | ctrl+g Cancelar ventanas emergentes/abortar la respuesta en ejecución |
158
-
159
-
160
- ---
161
-
162
- ## [Mayús+Entrar](#mayúsentrar)
163
-
164
- Algunos terminales no envían teclas modificadoras con Enter de forma predeterminada. Es posible que necesite configurar su terminal para enviar `Shift+Enter` como secuencia de escape.
165
-
166
- ### [Windows Terminal](#windows-terminal)
167
-
168
- Abra su `settings.json` en:
169
-
170
- **File**:
171
-
172
- ```plaintext
173
- %LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json
174
- ```
175
-
176
- Agregue esto a la matriz `actions` de nivel raíz:
177
-
178
- **File**:
179
-
180
- ```json
181
- "actions": [
182
- {
183
- "command": {
184
- "action": "sendInput",
185
- "input": "\u001b[13;2u"
186
- },
187
- "id": "User.sendInput.ShiftEnterCustom"
188
- }
189
- ]
190
- ```
191
-
192
- Agregue esto a la matriz `keybindings` de nivel raíz:
193
-
194
- **File**:
195
-
196
- ```json
197
- "keybindings": [
198
- {
199
- "keys": "shift+enter",
200
- "id": "User.sendInput.ShiftEnterCustom"
201
- }
202
- ]
203
- ```
204
-
205
- Guarde el archivo y reinicie Windows Terminal o abra una nueva pestaña.
Binary file
@@ -1,202 +0,0 @@
1
- # Servidores LSP
2
-
3
- OpenCode se integra con sus servidores LSP.
4
-
5
- OpenCode se integra con su protocolo de servidor de idiomas (LSP) para ayudar a LLM a interactuar con su código base. Utiliza diagnósticos para proporcionar retroalimentación al LLM.
6
-
7
- ---
8
-
9
- ## [Incorporados](#incorporados)
10
-
11
- OpenCode viene con varios servidores LSP integrados para idiomas populares:
12
- ``````````````````````````````````````````````````
13
-
14
- | Servidor LSP Extensiones Requisitos |
15
- | --- |
16
- | astro .astro Autoinstalaciones para proyectos Astro |
17
- | bash .sh, .bash, .zsh, .ksh Autoinstala el servidor en lenguaje bash |
18
- | clangd .c, .cpp, .cc, .cxx, .c++, .h, .hpp, .hh, .hxx, .h++ Instalaciones automáticas para proyectos C/C++ |
19
- | csharp .cs .NET SDK instalado |
20
- | clojure-lsp .clj, .cljs, .cljc, .edn Comando clojure-lsp disponible |
21
- | dart .dart Comando dart disponible |
22
- | deno .ts, .tsx, .js, .jsx, .mjs Comando deno disponible (detecta automáticamente deno.json/deno.jsonc) |
23
- | elixir-ls .ex, .exs Comando elixir disponible |
24
- | eslint .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue eslint dependencia en proyecto |
25
- | fsharp .fs, .fsi, .fsx, .fsscript .NET SDK instalado |
26
- | gleam .gleam Comando gleam disponible |
27
- | gopls .go Comando go disponible |
28
- | hls .hs, .lhs Comando haskell-language-server-wrapper disponible |
29
- | jdtls .java Java SDK (version 21+) instalado |
30
- | julials .jl julia y LanguageServer.jl instalados |
31
- | kotlin-ls .kt, .kts Autoinstalaciones para proyectos Kotlin |
32
- | lua-ls .lua Autoinstalaciones para proyectos Lua |
33
- | nixd .nix Comando nixd disponible |
34
- | ocaml-lsp .ml, .mli Comando ocamllsp disponible |
35
- | oxlint .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue, .astro, .svelte oxlint dependencia en proyecto |
36
- | php intelephense .php Autoinstalaciones para proyectos PHP |
37
- | prisma .prisma Comando prisma disponible |
38
- | pyright .py, .pyi Dependencia pyright instalada |
39
- | ruby-lsp (rubocop) .rb, .rake, .gemspec, .ru Comandos ruby y gem disponibles |
40
- | rust .rs Comando rust-analyzer disponible |
41
- | sourcekit-lsp .swift, .objc, .objcpp swift instalado ( xcode en macOS) |
42
- | svelte .svelte Autoinstalaciones para proyectos Svelte |
43
- | terraform .tf, .tfvars Instalaciones automáticas desde versiones GitHub |
44
- | tinymist .typ, .typc Instalaciones automáticas desde versiones GitHub |
45
- | typescript .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts typescript dependencia en proyecto |
46
- | vue .vue Autoinstalaciones para proyectos Vue |
47
- | yaml-ls .yaml, .yml Autoinstala Red Hat yaml-language-server |
48
- | zls .zig, .zon Comando zig disponible |
49
-
50
-
51
- Los servidores LSP se habilitan automáticamente cuando se detecta una de las extensiones de archivo anteriores y se cumplen los requisitos.
52
-
53
- > [!NOTE]
54
- > Puede deshabilitar las descargas automáticas del servidor LSP configurando la variable de entorno `OPENCODE_DISABLE_LSP_DOWNLOAD` en `true`.
55
-
56
- ---
57
-
58
- ## [Cómo funciona](#cómo-funciona)
59
-
60
- Cuando opencode abre un archivo:
61
-
62
- 1. Comprueba la extensión del archivo con todos los servidores LSP habilitados.
63
- 1. Inicia el servidor LSP apropiado si aún no se está ejecutando.
64
-
65
- ---
66
-
67
- ## [Configuración](#configuración)
68
-
69
- Puede personalizar los servidores LSP a través de la sección `lsp` en su configuración opencode.
70
-
71
- **File**: opencode.json
72
-
73
- ```json
74
- {
75
- "$schema": "https://opencode.ai/config.json",
76
- "lsp": {}
77
- }
78
- ```
79
-
80
- Cada servidor LSP admite lo siguiente:
81
- ````````````
82
-
83
- | Propiedad Tipo Descripción |
84
- | --- |
85
- | disabled booleano Establezca esto en true para deshabilitar el servidor LSP |
86
- | command cadena[] El comando para iniciar el servidor LSP |
87
- | extensions cadena[] Extensiones de archivo que este servidor LSP debería manejar |
88
- | env objeto Variables de entorno para configurar al iniciar el servidor |
89
- | initialization objeto Opciones de inicialización para enviar al servidor LSP |
90
-
91
-
92
- Veamos algunos ejemplos.
93
-
94
- ---
95
-
96
- ### [Variables de entorno](#variables-de-entorno)
97
-
98
- Utilice la propiedad `env` para establecer variables de entorno al iniciar el servidor LSP:
99
-
100
- **File**: opencode.json
101
-
102
- ```json
103
- {
104
- "$schema": "https://opencode.ai/config.json",
105
- "lsp": {
106
- "rust": {
107
- "env": {
108
- "RUST_LOG": "debug"
109
- }
110
- }
111
- }
112
- }
113
- ```
114
-
115
- ---
116
-
117
- ### [Opciones de inicialización](#opciones-de-inicialización)
118
-
119
- Utilice la propiedad `initialization` para pasar opciones de inicialización al servidor LSP. Estas son configuraciones específicas del servidor enviadas durante la solicitud LSP `initialize`:
120
-
121
- **File**: opencode.json
122
-
123
- ```json
124
- {
125
- "$schema": "https://opencode.ai/config.json",
126
- "lsp": {
127
- "typescript": {
128
- "initialization": {
129
- "preferences": {
130
- "importModuleSpecifierPreference": "relative"
131
- }
132
- }
133
- }
134
- }
135
- }
136
- ```
137
-
138
- > [!NOTE]
139
- > Las opciones de inicialización varían según el servidor LSP. Consulte la documentación de su servidor LSP para conocer las opciones disponibles.
140
-
141
- ---
142
-
143
- ### [Deshabilitar servidores LSP](#deshabilitar-servidores-lsp)
144
-
145
- Para deshabilitar **todos** los servidores LSP globalmente, configure `lsp` en `false`:
146
-
147
- **File**: opencode.json
148
-
149
- ```json
150
- {
151
- "$schema": "https://opencode.ai/config.json",
152
- "lsp": false
153
- }
154
- ```
155
-
156
- Para deshabilitar un servidor LSP **específico**, configure `disabled` en `true`:
157
-
158
- **File**: opencode.json
159
-
160
- ```json
161
- {
162
- "$schema": "https://opencode.ai/config.json",
163
- "lsp": {
164
- "typescript": {
165
- "disabled": true
166
- }
167
- }
168
- }
169
- ```
170
-
171
- ---
172
-
173
- ### [Servidores LSP personalizados](#servidores-lsp-personalizados)
174
-
175
- Puede agregar servidores LSP personalizados especificando el comando y las extensiones de archivo:
176
-
177
- **File**: opencode.json
178
-
179
- ```json
180
- {
181
- "$schema": "https://opencode.ai/config.json",
182
- "lsp": {
183
- "custom-lsp": {
184
- "command": ["custom-lsp-server", "--stdio"],
185
- "extensions": [".custom"]
186
- }
187
- }
188
- }
189
- ```
190
-
191
- ---
192
-
193
- ## [Información adicional](#información-adicional)
194
-
195
- ### [PHP Intelephense](#php-intelephense)
196
-
197
- PHP Intelephense ofrece funciones premium a través de una clave de licencia. Puede proporcionar una clave de licencia colocando (únicamente) la clave en un archivo de texto en:
198
-
199
- - En macOS/Linux: `$HOME/intelephense/license.txt`
200
- - En Windows: `%USERPROFILE%/intelephense/license.txt`
201
-
202
- El archivo debe contener sólo la clave de licencia sin contenido adicional.
Binary file