reactjs - how - Autocompletar JSX o HTML en Visual Studio Code
visual studio code autocomplete html (15)
Actualización 2019
Etiquetas de cierre automático en .html, .js y .jsx
Funciona fuera de la caja. Es decir, después de escribir el corchete de cierre en la etiqueta de apertura, la etiqueta de cierre se insertará automáticamente.
Emmet con HTML básico en archivos .jsx
Funciona fuera de la caja.
Emmet con HTML básico en archivos .js:
Agregue la siguiente configuración, requerida para las sugerencias de abreviaturas de Emmet, y requerida para que la expansión de pestañas funcione de manera consistente.
"emmet.includeLanguages": {
"javascript": "javascriptreact"
},
Emmet con etiquetas personalizadas (por ejemplo, React Components) en archivos .js y .jsx
Agregue la siguiente configuración:
"emmet.triggerExpansionOnTab": true,
Tenga en cuenta que con esta configuración, Emmet expandirá todas las palabras como etiquetas personalizadas (no solo Reaccionar nombres de componentes)
También tenga en cuenta que cuando use Emmet para expandir componentes React como etiquetas personalizadas, debe elegir el nombre del componente de la lista de sugerencias y completarlo primero (o escribir el nombre completo manualmente y cerrar el menú de sugerencias con la tecla de escape). Después de que la palabra se expande, debe volver a presionar para que Emmet expanda la etiqueta personalizada.
Hay una solicitud de función activa para eliminar potencialmente este paso adicional (expandir automáticamente al seleccionar la sugerencia para que funcione de la misma manera que expandiría las etiquetas html estándar).
Solución de problemas
Asegúrese de tener la última versión de VSCode.
Asegúrese de no haber cambiado la siguiente configuración predeterminada:
"html.autoClosingTags": true,
"javascript.autoClosingTags": true,
"typescript.autoClosingTags": true,
// read the GitHub issue listed above if you''re curious why this is required).
"editor.wordBasedSuggestions": true,
// you obviously don''t want javascript, javascriptreact included in here if you want Emmet to be available in those files
"emmet.excludeLanguages": [
"markdown"
],
¿Hay alguna forma de usar componentes o completar HTML en Visual Studio Code?
Porque escribir cada letra manualmente no es una buena idea cuando tenemos clases como Bootstrap, etc. Por ejemplo, completar como en Emmet:
ul>li*2>a
var React = require(''react'');
var Header = React.createClass({
render: function () {
return (
<nav className="navbar navbar-defaullt">
<div className="container-fluid">
<a href="/" className="navbar-brand">
<img width="50" height="50" src="images/logo.png" alt="logo" />
</a>
<ul className="nav navbar-nav">
<li><a href="/">Home</a></li>
<li><a href="/#about">About</a></li>
</ul>
</div>
</nav>
);
}
});
module.exports = Header;
Autocompletar para React Babel estuvo funcionando bien hasta ayer para mí.
Ninguna de estas respuestas me ayudó, así que simplemente reinicié mi computadora. Trabajado como un encanto ;)
El código de Visual Studio detecta extensiones .jsx y agrega compatibilidad con emmet de manera predeterminada (estoy usando el código VS 1.8.1)
Pero si prefiere usar la extensión .js para todos sus archivos de reacción, puede asociar el modo Reacción de JavaScript con archivos .js en la esquina inferior derecha de la ventana de VS Code.
Estaba trabajando en varios proyectos y tengo un gran archivo de configuración.
Verifiqué la configuración y descubrí que esta configuración estaba arruinando todo eso.
"emmet.showExpandedAbbreviation": "inMarkupAndStylesheetFilesOnly"
Entonces lo comenté. Y todo funciona perfectamente en React Apps. Gracias
Fui a arrojar todas las respuestas y esta configuración funcionó para mí. tuvo que incluir el lenguaje y agregar el perfil de sintaxis. sin la expansión del disparador nada funcionó, pero ahora solo presiono el botón Tab para obtener el resultado.
"emmet.includeLanguages": {
"javascript": "javascriptreact"
},
"emmet.syntaxProfiles": {
"javascript": "jsx"
},
"emmet.triggerExpansionOnTab": true
Me llevó dos pasos obtener etiquetas de cierre automático en JSX.
-
Siga las instrucciones de Kehkashan Fazal anteriores sobre la configuración de
"emmet.includeLanguages"
-
Descargue la extensión Auto Close Tag de VSCode (
formulahendry.auto-close-tag
)
¡Y ahora tiene buenas etiquetas JSX de cierre automático!
Ninguna de esas soluciones funcionó ... ¡pero la extensión Auto Close Tag sí! https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-close-tag
Resolví el problema simplemente siguiendo los pasos a continuación:
- En la parte inferior izquierda de VSCode, haga clic en Javascript
- Luego, en la parte superior, verá una lista, haga clic en "Configurar la configuración basada en el lenguaje ''Javascript''"
-
Agregue estas líneas al archivo:
"emmet.triggerExpansionOnTab": true, "emmet.includeLanguages": { "javascript": "javascriptreact" }
Si desea obtener más detalles, puede consultar this enlace.
Si alguien todavía está luchando con este problema:
He descubierto que simplemente configurando
"emmet.syntaxProfiles": {
"javascript": "jsx"
},
no habilita la finalización de HTML. Pero, usando:
"emmet.includeLanguages": {
"javascript": "html"
}
hace.
Según los documentos de emmet :
"emmet.includeLanguages": {}
Habilite las abreviaturas de emmet en idiomas que no son compatibles de forma predeterminada. Agregue una asignación aquí entre el idioma y el idioma admitido por emmet.
Por ejemplo:{"vue-html": "html", "javascript": "javascriptreact"}
Siga estos dos pasos solamente:
- En la parte inferior de VSCode donde detectar idioma, haga clic en ese
- Haga clic en "Configurar la configuración basada en el lenguaje ''Javascript (Babel)'' ..." o lo que sea
- pegue este código en él por separado primero con la coma '','' y guárdelo.
"emmet.includeLanguages": { "javascript": "javascriptreact" }, "emmet.triggerExpansionOnTab": true
Simplemente seleccione el modo de idioma apropiado en la esquina inferior derecha de la pantalla: configúrelo en React JavaScript.
Solo funciona en archivos JSX. Deja que no funcione con JS.
"files.associations": {
"*.js": "javascript",
"*.jsx": "javascriptreact",
},
"emmet.triggerExpansionOnTab": true,
"emmet.includeLanguages": {
"javascriptreact": "javascriptreact"
},
puede usar la extensión de cierre automático en el código de Visual Studio. PD. cuando instale la extensión, el autocompletado no funcionará hasta que vuelva a cargar el código VS, simplemente vuelva a abrir el código VS o vaya a la extensión de etiqueta de cierre automático y haga clic en Volver a cargar.
enlace de la extensión de https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-close-tag
2018
Estoy usando
VSCode
(ver 1.27.2)
Base en mi experiencia, a pesar de que estoy trabajando con
React
.
El idioma detectado en mi
VSCode
sigue siendo
JavaScript
vainilla.
Y emmet no funcionó.
-
Una de las formas de hacerlo funcionar de nuevo es cambiar el
VSCode
detectadoVSCode
aJavaScript React
. Esto es solo para un solo archivoJS
.
- Para cambiarlo una vez por completo, debe asociarlo.
Haga clic en
Configure File Association for .js...
Y seleccione
JSX
, que en mi caso, ya lo hice.
-
Para el lugar de trabajo, y por último si ninguno de ellos funciona para usted.
Vaya a Preferencia de solo a
ctrl + , (comma)
para abrirlo.
Escriba y busque
emmet
o
Emmet
.
Luego copie la configuración que desea anular.
En mi caso:
{
"emmet.triggerExpansionOnTab": true,
"emmet.includeLanguages": {
"javascript": "javascriptreact"
},
}
Nota
: no intenté usar
jsx
solo
javascriptreact
.
Implementé el segundo y tercer paso.
Y ahora puedo hacer
Emmet
.
2019: respuesta directa al punto para React
La forma más directa de obtener autocompletar JSX / HTML en sus proyectos React es agregar esto a su configuración de usuario o configuración de espacio de trabajo (
<project-path>/.vscode/settings.json
):
"emmet.includeLanguages": {
"javascript": "javascriptreact"
},
"emmet.triggerExpansionOnTab": true
Es posible que deba reiniciar VS Code para que el cambio surta efecto.
PD: Si no está haciendo esta asignación para un proyecto React.js, entonces la respuesta de KehkashanFazal probablemente debería funcionar para usted.