Skip to content

Commit 5856641

Browse files
hubwriterCopilotCopilotjclement136examon
authored
Copilot CLI: Document LSP servers (#60592)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: John Clement <70238417+jclement136@users.noreply.github.com> Co-authored-by: examon <1676292+examon@users.noreply.github.com>
1 parent 71cd49f commit 5856641

File tree

16 files changed

+417
-22
lines changed

16 files changed

+417
-22
lines changed

content/copilot/concepts/agents/about-agent-skills.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ Support for organization-level and enterprise-level skills is coming soon.
2929

3030
## Next steps
3131

32-
To create an agent skill, see:
32+
To create or add agent skills, see:
3333

34-
* [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/create-skills)
35-
* [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/create-skills)
34+
* [AUTOTITLE](/copilot/how-tos/use-copilot-agents/cloud-agent/add-skills)
35+
* [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/add-skills)
3636
* [AUTOTITLE](/copilot/reference/customization-cheat-sheet)

content/copilot/concepts/agents/copilot-cli/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ children:
1515
- /fleet
1616
- /research
1717
- /chronicle
18+
- /lsp-servers
1819
- /context-management
1920
contentType: concepts
2021
docsTeamMetrics:
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
---
2+
title: Using LSP servers with {% data variables.copilot.copilot_cli %}
3+
shortTitle: LSP servers
4+
allowTitleToDifferFromFilename: true
5+
intro: 'LSP servers give {% data variables.copilot.copilot_cli_short %} precise code intelligence, enabling it to navigate definitions, find references, and rename symbols accurately across your project.'
6+
versions:
7+
feature: copilot
8+
contentType: concepts
9+
docsTeamMetrics:
10+
- copilot-cli
11+
category:
12+
- Learn about Copilot # Copilot discovery page
13+
- Learn about Copilot CLI # Copilot CLI bespoke page
14+
---
15+
16+
## Introduction
17+
18+
The Language Server Protocol (LSP) is an open standard used for communication between a code editor and a language server. A language server is a process that provides language-specific features like go-to-definition and renaming a code symbol across your codebase. An "LSP server" is any language server that supports the Language Server Protocol.
19+
20+
{% data variables.copilot.copilot_cli %} can use LSP servers to understand the structure of your code more precisely. By adding and configuring an LSP server for each programming language in your project, you'll give {% data variables.copilot.copilot_cli_short %} a better understanding of your code.
21+
22+
## Benefits of LSP servers
23+
24+
* **Accuracy**: Results come from the language's own compiler/analyzer, providing an understanding of the structure of your code. This improves {% data variables.product.prodname_copilot_short %}'s precision when it works with your code. For example, when {% data variables.product.prodname_copilot_short %} can use "go to definition" it will find the actual definition, not a text match that looks similar.
25+
* **Token efficiency**: Operations like "list all symbols" or "find references" return compact structured results instead of requiring the agent to read entire files into the conversation.
26+
* **Safe refactoring**: When you rename a symbol, the LSP server reliably updates every reference across the project.
27+
* **Speed**: Language servers index your project in the background, allowing near-instant responses.
28+
29+
## What LSP servers allow {% data variables.copilot.copilot_cli_short %} to do
30+
31+
When LSP servers are available, {% data variables.copilot.copilot_cli_short %} uses them automatically. You don't need to explicitly request it. {% data variables.copilot.copilot_cli_short %} will use an LSP server rather than text-based search whenever it can access an LSP server for the programming language you're using.
32+
33+
The following language server operations are supported:
34+
35+
| Operation | What it does |
36+
|-----------|-------------|
37+
| Go to definition | Jumps to where a symbol (function, class, variable) is defined. |
38+
| Find references | Finds every location where a symbol is used. |
39+
| Hover | Retrieves type information and documentation for a symbol. |
40+
| Rename | Renames a symbol across the entire project, updating all references. |
41+
| Document symbols | Lists all symbols defined in a file. |
42+
| Workspace symbol search | Searches for symbols by name across the project. |
43+
| Go to implementation | Finds implementations of an interface or abstract method. |
44+
| Incoming calls | Shows which functions call a given function. |
45+
| Outgoing calls | Shows which functions a given function calls. |
46+
47+
{% data variables.product.prodname_copilot_short %} selects the most appropriate LSP operation based on your prompt. For example, if you ask "where is `handlePayment` defined?", {% data variables.product.prodname_copilot_short %} will use the go-to-definition operation.
48+
49+
## How to add an LSP server
50+
51+
For {% data variables.copilot.copilot_cli_short %} to be able to use an LSP server, you must first install the server software on your local machine and then configure it in one of the configuration files that {% data variables.copilot.copilot_cli_short %} reads on startup. See [AUTOTITLE](/copilot/how-tos/copilot-cli/set-up-copilot-cli/add-lsp-servers).
52+
53+
An LSP server may also be added as part of a CLI plugin that you choose to install. A plugin might include an LSP server if, for example, it's designed to work with an uncommon programming language or a framework-specific file type. LSP servers included as part of a plugin are automatically available when you install the plugin—no additional configuration is needed. If you uninstall the plugin, the LSP server is removed. For more information, see [AUTOTITLE](/copilot/concepts/agents/copilot-cli/about-cli-plugins).
54+
55+
## How LSP servers are loaded
56+
57+
When {% data variables.copilot.copilot_cli %} starts, it loads LSP server configurations from multiple sources with the following priority (highest to lowest):
58+
59+
1. **Project config**: `.github/lsp.json` in the current repository.
60+
1. **Plugin configs**: language servers provided by installed plugins.
61+
1. **User config**: `~/.copilot/lsp-config.json`.
62+
63+
Higher-priority configurations override lower-priority ones with the same server name. This means a project can customize or disable language servers for all contributors.
64+
65+
Once the working directory is trusted, {% data variables.copilot.copilot_cli_short %} automatically starts any LSP servers that are relevant to your project, in the background, so they are ready to respond immediately when needed.
66+
67+
## Next steps
68+
69+
* [AUTOTITLE](/copilot/how-tos/copilot-cli/set-up-copilot-cli/add-lsp-servers)
70+
71+
## Further reading
72+
73+
* [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) on the Microsoft website
74+
* [AUTOTITLE](/copilot/reference/cli-command-reference)

content/copilot/how-tos/copilot-cli/customize-copilot/create-skills.md renamed to content/copilot/how-tos/copilot-cli/customize-copilot/add-skills.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
---
2-
title: Creating agent skills for {% data variables.copilot.copilot_cli %}
3-
shortTitle: Create agent skills
2+
title: Adding agent skills for {% data variables.copilot.copilot_cli %}
3+
shortTitle: Add agent skills
44
allowTitleToDifferFromFilename: true
55
intro: 'Modify {% data variables.product.prodname_copilot_short %}''s behavior and abilities when it works on particular tasks.'
66
versions:
77
feature: copilot
88
contentType: how-tos
9+
redirect_from:
10+
- /copilot/how-tos/copilot-cli/customize-copilot/create-skills
911
category:
1012
- Configure Copilot # Copilot discovery page
1113
- Author and optimize with Copilot # Copilot discovery page
@@ -18,6 +20,12 @@ Agent skills are folders of instructions, scripts, and resources that {% data va
1820

1921
{% data reusables.copilot.creating-adding-skills %}
2022

23+
1. Start a CLI session, or if you are currently in a CLI session enter `/skills reload`.
24+
1. Enter `/skills info SKILL-NAME` to check that the skill has reloaded.
25+
26+
SKILL-NAME is defined in the SKILL.md file and is typically the same as the name of the skill directory.
27+
28+
2129
## Using agent skills
2230

2331
{% data reusables.copilot.skills-using %}

content/copilot/how-tos/copilot-cli/customize-copilot/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ children:
99
- /overview
1010
- /add-custom-instructions
1111
- /use-hooks
12-
- /create-skills
12+
- /add-skills
1313
- /add-mcp-servers
1414
- /create-custom-agents-for-cli
1515
- /use-byok-models

content/copilot/how-tos/copilot-cli/customize-copilot/overview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ For more information, see [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-cop
3535

3636
Skills are folders of instructions, scripts, and resources that {% data variables.product.prodname_copilot_short %} can load to improve its performance on specialized tasks. By adding skills to your project, you can give {% data variables.product.prodname_copilot_short %} extra knowledge or tools for particular workflows, technologies, or domains.
3737

38-
For more information, see [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/create-skills).
38+
For more information, see [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot/add-skills).
3939

4040
## Custom agents
4141

content/copilot/how-tos/copilot-cli/index.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,18 @@ children:
3434
- /content/copilot/concepts/agents/copilot-cli/about-remote-access
3535
- /content/copilot/concepts/agents/copilot-cli/fleet
3636
- /content/copilot/concepts/agents/copilot-cli/research
37+
- /content/copilot/concepts/agents/copilot-cli/lsp-servers
3738
- /content/copilot/concepts/agents/copilot-cli/chronicle
3839
- /content/copilot/concepts/agents/copilot-cli/context-management
3940
- /set-up-copilot-cli/install-copilot-cli
4041
- /set-up-copilot-cli/configure-copilot-cli
42+
- /set-up-copilot-cli/add-lsp-servers
4143
- /automate-copilot-cli/quickstart
4244
- /automate-copilot-cli/automate-with-actions
4345
- /automate-copilot-cli/run-cli-programmatically
4446
- /customize-copilot/add-custom-instructions
4547
- /customize-copilot/create-custom-agents-for-cli
46-
- /customize-copilot/create-skills
48+
- /customize-copilot/add-skills
4749
- /customize-copilot/plugins-creating
4850
- /customize-copilot/plugins-finding-installing
4951
- /customize-copilot/plugins-marketplace

0 commit comments

Comments
 (0)