Extensiones y soporte técnico del ecosistemaExtensions and Ecosystem Support

Uno de los objetivos principales de Visual Studio Live Share es que los desarrolladores puedan colaborar entre sí, desde la comodidad de sus favoritos, y muy personalizable herramientas.One of the primary goals of Visual Studio Live Share is to enable developers to collaborate with each other, from the comfort of their favorite, and highly-customized tools. De este modo, ad-hoc interacciones pueden producirse con frecuencia, sin dejar de familiares y ergonómico visualmente, independientemente qué ayudan a con.This way, ad-hoc interactions can occur frequently, while remaining visually familiar and ergonomic, regardless what you're helping with. Para lograr esto, es fundamental que los participantes en una sesión de colaboración son capaces de seguir usando las extensiones que admiten sus flujos de trabajo y preferencias personales (por ejemplo, los temas de color o icono, los enlaces de teclado, editor de potenciadores de productividad).To achieve this, it's critical that participants within a collaboration session are able to continue using any extensions which support their personal preferences and workflows (e.g. color/icons themes, key bindings, editor productivity enhancers).

Además, para realizar la acción de unirse a una sesión de colaboración como instantánea como sea posible, mientras sigue siendo altamente productivo, el objetivo de Visual Studio Live Share es habilitar los invitados puedan aprovechar automáticamente las herramientas específicas del proyecto que ha compartido su host.Additionally, to make the act of joining a collaboration session as instant as possible, while remaining highly-productive, the goal of Visual Studio Live Share is to enable guests to automatically leverage the project-specific tooling their host has shared. De este modo, puede simplemente haga clic en un vínculo, inicie la herramienta de elección y comience a colaborar, sin ninguna configuración adicional.This way, you can simply click a link, launch your tool of choice, and begin collaborating, without any extra setup. Para lograr esto, es fundamental que extensiones, que el núcleo de energía editar, compilar y depurar el flujo de trabajo, son de forma transparente "remotos" desde el host al invitado, para que las cosas como la finalización automática, ir a definición y la depuración " simplemente funcionan".To achieve this, it is critical that extensions, which power the core edit, build and debug workflow, are transparently "remoted" from the host to the guest, so that things like auto-completion, go-to-definition, and debugging "just work".

Este documento abarca el actual que se conoce el estado para el ecosistema de gran extensión, así como el "scorecard" para los objetivos mencionados anteriormente.This document covers the current known state for the vast extension ecosystem, as well as a "scorecard" for the aforementioned goals. Si se produce una extensión que no cumple este criterio y es fundamental para el flujo de trabajo personal, a continuación, inicie háganoslo saber!If you encounter an extension that doesn't meet this criteria, and is critical to your personal workflow, then please let us know!

Extensiones específicas del usuarioUser-Specific Extensions

Las extensiones que admiten las personalizaciones específicas del usuario debe profesional para el host, y debe profesional para todos los invitados.Extensions that support user-specific customizations must work for the host, and should work for all guests. Si una extensión no funciona correctamente para el host, que sería una regresión y es probable que un error en Visual Studio Live Share (por favor, registre un problema si ve alguno!).If an extension doesn't work properly for the host, that would be a regression, and is likely a bug in Visual Studio Live Share (please file an issue if you see one!). Si una extensión no se comporta según lo esperado para un invitado, puede requerir los cambios en la propia extensión, y vamos a trabajar con el ecosistema de dirección/mejorar estos escenarios.If an extension doesn't behave as expected for a guest, it may require changes in the extension itself, and we'll work with the ecosystem to address/improve these scenarios.

Visual Studio CodeVisual Studio Code

CategoríaCategory EjemplosExample(s) ¿Compatible con el invitado?Guest-Supported? ¿Colaboración?Collaborative?
Temas de colorColor Themes Pro oscuro uno, salida Coloreador, arco iris cadena, coloreados regiones, sangría bloque resaltado, Resaltado de la lista de tareas, Coloreador par corchete angular de cierreOne Dark Pro, Output Colorizer, Rainbow String, Colored Regions, Indented Block Highlighting, Todo Highlight, Bracket Pair Colorizer N/AN/A
Conjuntos de iconosIcon Sets iconos de vscode, Visual Studio iconos en vista clásicavscode-icons, Visual Studio Classic Icons N/AN/A
Enlaces de tecladoKey bindings VIM, IntelliJ IDEA Keybindings, mapa de teclas Emacs compatibleVim, IntelliJ IDEA Keybindings, Emacs Friendly Keymap N/AN/A
Fragmentos de códigoSnippets Fragmentos de código de angular v5, fragmentos de código HTML, SVG iconos, encabezado de archivoAngular v5 Snippets, HTML Snippets, SVG Icons, File Header N/A 1N/A 1
OrganizaciónOrganization Sincronización de configuración, jefe de proyecto, Timeit, puntos de control, analizador TODO, favoritos (❌), marcadores (❌)Settings Sync, Project Manager, Timeit, Checkpoints, TODO Parser, Favorites (❌), Bookmarks (❌) 22 N/A 3N/A 3
ProductividadProductivity GitLens, etiqueta automático Rename, código esquema, resaltado de Color, incrementar selección, Bracketeer, vista previa de imagen, JSON auxiliar (mantenga el mouse), selector de Color, copiar Word cursor, CodeMetrics (CodeLens), Git coautores, JavaScript ajuste (CodeActions), registro de la consola de Turbo, Ir a siguiente/anterior miembro, desplazamiento automático, NPM importación versión (❌), importar costo (❌)GitLens, Auto-Rename Tag, Code Outline, Color Highlight, Increment Selection, Bracketeer, Image Preview, JSON Helper (Hover), Color Picker, Copy Word in Cursor, CodeMetrics (CodeLens), Git Co-Authors, JavaScript Booster (CodeActions), Turbo Console Log, Goto Next/Previous Member, Auto-scroll, NPM Import Version (❌), Import Cost (❌) 22 33
REPLREPLs Cliente REST, código ejecutor, Quokka.js, RREST Client, Code Runner, Quokka.js, R 44 33
Administradores de recursosResource Managers MSSQL, ftp simple, Azure Functions, Docker, Brew serviciosmssql, ftp-simple, Azure Functions, Docker, Brew Services 55 33

1 a menos que un usuario ya estaba familiarizado con un fragmento de código, no esperaría que esté disponible y, por lo tanto, hacerlos compartido no necesariamente tiene sentido.1 Unless a user was already familiar with a snippet, they wouldn't expect it to be available, and therefore, making them shared doesn't necessarily make sense.

2 estas categorías de extensión son tan diversas, que es imposible que decir funcionan. Sin embargo, en teoría, debe y realizaremos un seguimiento de la clave de las que no.2 These extension categories are so diverse, that it's impossible to say they all work. However, in theory, they should, and we'll track the key ones that don't.

3 estas categorías de extensión pueden beneficiarse de las experiencias de colaboración y, por lo que necesitamos comentarios del usuario final que saber!3 These extension categories may benefit from collaborative experiences, and so we need end-user feedback to know that!

4 requieren el invitado tiene instaladas las herramientas de tiempo de ejecución (por ejemplo, Node.js), y trabajar mediante la ejecución de código localmente.4 These require the guest to have the runtime tools installed (e.g. Node.js), and work by running code locally.

5 estas funcionan mediante la conexión a un servidor de algún tipo y puede trabajar con ambos servidores centralizados, los servidores que ha compartido el invitado.5 These work by connecting to a server of some kind, and can work with either centralized servers, servers that the guest has shared.

Programa para la mejoraVisual Studio

Próximamente.Coming soon.

Extensiones específicas del proyectoProject-Specific Extensions

Extensiones de host instalado, que admiten el núcleo de edición, compilación y depuración de una aplicación y son específicos de un lenguaje o plataforma/biblioteca/SDK, deben ser disponibles automáticamente para los invitados, sin necesidad de instalar nada.Host-installed extensions, which support the core editing, building and debugging of an application, and are specific to a language/platform/library/SDK, should be automatically available to guests, without requiring them to install anything. De este modo, hosts pueden configurar su entorno para admitir desarrollo productivo de un proyecto y permitir que sus invitados al instante a unirse a ellos, sin requisitos previos adicionales.This way, hosts can setup their environment to support productive development of a project, and allow their guests to instantly join them, without additional pre-requisites. Dado que no son extensiones específicas del proyecto subjetiva o personal de cualquier manera, que pueden determinista compartirse de host a invitado, sin afectar al entorno familiar de cualquier persona.Because project-specific extensions aren't subjective or personal in any way, they can be deterministically shared from host-to-guest, without impacting anyone's familiar environment.

Además, con el fin de admitir extensiones específicas del proyecto que tenga instalado un invitado, pero el host no, sería lo ideal es que proporcionan una experiencia degradada, todavía funcional (por ejemplo, intellisense de archivo único de introducción, poder dar formato a un documento).Additionally, in order to support project-specific extensions that a guest has installed, but the host doesn't, they would ideally provide a degraded, yet functional experience (e.g. getting single file intellisense, being able to format a document).

CategoríaCategory EjemplosExample(s) ¿Compartido?Shared? ¿Compatible con el invitado?Guest-Supported?
Gramáticas / resaltado de sintaxisGrammars / Syntax highlighting Shell de peces, Nginx, Vetur, DotEnv, ES6 cadena HTML, Todo +, Arco iris CSVFish Shell, Nginx, Vetur, DotEnv, ES6 String HTML, Todo+, Rainbow CSV
Servicios de lenguajeLanguage Services YAML, Path Intellisense, ARMYAML, Path Intellisense, ARM 11 22
JSON SchemasJSON Schemas Funciones de AzureAzure Functions
LinterLinters ESLint, Markdownlint, código corrector ortográfico, PHPCSESLint, Markdownlint, Code Spell Checker, PHPCS 22
FormateadoresFormatters Más agradable, de presentaciónPrettier, Beautify 22
DepuradoresDebuggers Python, depurador para ChromePython, Debugger for Chrome 33 44
Ejecutores de pruebasTest Runners Ejecutor de pruebas de Java, Mocha Sidebar, Postman ejecutor, Jest ejecutor, NeptuneJava Test Runner, Mocha Sidebar, Postman Runner, Jest Runner, Neptune 55 22
Controladores de vista previa de archivo personalizadoCustom File Previewers Vista previa SVG, GraphViz, tamaño de la imagen de MarkdownSVG Preview, GraphViz, Markdown Image Size
Los generadores de archivo o proyectoFile/Project Generators Las funciones de Azure, generador de proyectos de C o C++Azure Functions, C/C++ Project Generator 66
Proveedores de control de código fuenteSource control providers SVN, HgSVN, Hg

1 actualmente solo C# y JavaScript/TypeScript, con soporte técnico más próximamente.1 Currently only C# and JavaScript/TypeScript, with more support coming soon.

2 solo admiten el documento activo actual, puesto que los invitados no tienen acceso al archivo local.2 Would only support the current active document, since guests don't have local file access.

3 se comparte la experiencia de depuración de núcleo, sin embargo, no se reenvían automáticamente todos los servidores iniciados.3 The core debugging experience is shared, however, any launched servers aren't automatically forwarded.

4 invitados no tienen una copia local de la aplicación y, por lo tanto, deben empezar en la máquina del host de la aplicación en ejecución y las sesiones de depuración.4 Guests don't have a local copy of the app, and therefore, the running app and any debug sessions need to start on the host's machine.

5 la salida de una serie de pruebas requiere que los terminales resultantes, paneles de salida y los errores también se han compartido con los invitados.5 The output of a test run would require that any resulting terminals, output panes and errors were also shared with guests.

6 casi todos estos utilizaría el Node.js fs módulo directamente para crear archivos, lo que podría no funcionarían.6 Almost all of these would use the Node.js fs module directly to create files, which wouldn't work.

Programa para la mejoraVisual Studio

Próximamente.Coming soon.

Problemas conocidosKnown Issues

Los siguientes son problemas conocidos actualmente extensión, que podrían impedir que el trabajo de los invitados en el contexto de una sesión de colaboración (junto con sus soluciones alternativas) y, por lo tanto, podrían afectar a su flujo de trabajo:The following are currently known extension issues, that could prevent them from working for guests within the context of a collaboration session (along with their workarounds), and therefore, could impact their workflow:

Visual Studio CodeVisual Studio Code

ProblemaIssue MotivoReason SoluciónWorkaround
Mediante el Node.js fs módulo para detectar o leer archivos (por ejemplo, un archivo de configuración), o enumerar directorios (y no es un servicio de lenguaje).Using the Node.js fs module to detect/read files (e.g. a config file), or enumerate directories (and you aren't a language service). Los invitados no tienen acceso al archivo local.Guests don't have local file access. 1. Degradar de forma correcta la experiencia del usuario (si es posible).1. Gracefully degrade the user-experience (if possible).

2. Use la openTextDocument y findFiles API para leer y enumerar los archivos del área de trabajo.2. Use the openTextDocument and findFiles workspace APIs to read and enumerate files.
Mediante el Node.js fs módulo para crear o escribir archivosUsing the Node.js fs module to create or write files Igual que el anteriorSame as above N/D puede usar el openTextDocument(Uri) API para crear un untitled archivo, pero no puede guardarlo directamente en el sistema de archivos en una ruta específica.N/A You can use the openTextDocument(Uri) API to create an untitled file, but you can't save it directly to the file system, at a specific path.
Según un agrupados por el proyecto de biblioteca o una herramientaDepending on a project-bundled library or tool Igual que el anteriorSame as above 1. Agrupación de una versión de la dependencia con la extensión de reserva1. Bundle a fallback version of the dependency with the extension

2. Admite la instalación global para desbloquear a los invitados si desean instalarlo explícitamente.2. Support global installation to unblock guests if they choose to explicitly install it.

3. El estado/acción si es posible, ya que el host tendría las dependencias derechos disponibles remoto.3. Remote the state/action if possible, since the host would have the right dependencies available.
Mediante el Node.js fs módulo para crear un directorioUsing the Node.js fs module to create a directory Igual que el anteriorSame as above N/AN/A
Restringir la funcionalidad a documentos que usan el file esquema.Restricting functionality to documents that use the file scheme. Archivos en uso del invitado la vsls esquema.Files on the guest's side use the vsls scheme. Agregar compatibilidad para vsls documentos (ejemplo)Add support for vsls documents (example)
Mediante el Uri.file método y/o Uri.fsPath / TextDocument.fileName miembros para serializar y analizar los URIUsing the Uri.file method and/or Uri.fsPath/TextDocument.fileName members to serialize/parse URIs Igual que el anteriorSame as above Use Uri.parse y Url.toString() en su lugar, lo que mantener y respetar los esquemas de archivo (ejemplo)Use Uri.parse and Url.toString() instead, which maintain and respect file schemes (example)
Mediante el workspace.openTextDocument método con una ruta de acceso de archivo en lugar de un UriUsing the workspace.openTextDocument method with a file path instead of a Uri Igual que el anteriorSame as above Proporcione un Uri instancia en lugar de una cadena de ruta de acceso de archivo sin formato (ejemplo)Provide a Uri instance instead of a raw file path string (example)
Mediante el workspace.rootPath propiedad para detectar la presencia de un área de trabajoUsing the workspace.rootPath property to detect the presence of a workspace El workspace.rootPath propiedad llamadas Uri.fsPath en la primera workspaceFolder en el workspace, que tiene el mismo problema se ha mencionado anteriormenteThe workspace.rootPath property calls Uri.fsPath on the first workspaceFolder in the workspace, which has the same issue mentioned above Use la workspace.workspaceFolders propiedad para detectar la presencia de un área de trabajo en su lugar y si es necesario, examine cada workspaceFolderdel Uri.scheme para determinar si es local o noUse the workspace.workspaceFolders property to detect the presence of a workspace instead, and if needed, look at each workspaceFolder's Uri.scheme to determine if it's local or not
No se especifica un esquema de documento al registrar los servicios de lenguaje (ya sea a través de un LanguageClient, o el languages.register* métodos)Not specifying a document scheme when registering language services (either via a LanguageClient, or the languages.register* methods) Invitados recepción los resultados del servicio de lenguaje desde sus extensiones locales y el host y, por lo tanto, si ambos participantes tienen la misma extensión de servicio de lenguaje instalada, los invitados verá entradas duplicadas para ciertas cosas (por ejemplo, Autocompletar, código acciones)Guests receive the language service results from both their local extensions, and the host, and therefore, if both participants have the same language service extension installed, guests will see duplicate entries for certain things (e.g. auto-completion, code actions) Restringir los servicios de lenguaje solo file y untitled esquemas (ejemplo)Restrict the language services to only file and untitled schemes (example)
Si no activa un documento Uri.scheme antes de rellenar un DiagnosticCollection para élNot checking a document's Uri.scheme before populating a DiagnosticCollection for it Igual que el anteriorSame as above Generar solo Diagnostics para documents cuyo Uri.scheme === file (ejemplo)Only generate Diagnostics for documents whose Uri.scheme === file (example)
No comprobar para el esquema de área de trabajo al devolver Tasks desde un personalizado TaskProviderNot checking for workspace scheme when returning Tasks from a custom TaskProvider Mostrar todas las tareas remotas y locales invitados y, por lo tanto, mostraría duplicados si ambos participantes tenían instalada la extensión del mismaGuests display all remote and local tasks, and therefore, would display duplicates if both participants had the same extension installed Devolver solo Tasks para WorkspaceFolders cuyo Uri.scheme === file (ejemplo)Only return Tasks for WorkspaceFolders whose Uri.scheme === file (example)

Programa para la mejoraVisual Studio

Próximamente.Coming soon.

Vea tambiénSee also

¿Tiene algún problema?Having problems? Consulte la solución de problemas o envíe sus comentarios.See troubleshooting or provide feedback.