[Resuelto] visual studio code, formateo y atajos de teclado

Iniciado por Herchi, 5 Septiembre 2019, 12:56 PM

0 Miembros y 1 Visitante están viendo este tema.

Herchi

buenas

Soy novato con Visual Studio Code y tengo dudas.

me he instalado la extensión del Prettier y veo que como atajo de teclado para formatear es con: Shift + Alt + F y con eso formatea TODO el documento PERO ¿si quiero formatear sólo una parte?
desde las opciones de "métodos abreviados de teclado" he asociado a "Dar formato a la selección" el atajo "Alt + F2" pero no me hace caso.

Tampoco veo dónde sería sin atajos de teclado. no deberían salir... no sé... unos botones  :-\

gracias por la ayuda

EdePC

Saludos,

- Veo decenas de extensiones que empiezan por Prettier, cual es el que descargaste? has leído la documentación de esa extensión?

- Por lo general los accesos directos a funcionalidades de todas las extensiones incluidas las que vienen por defecto se acceden presionando abriendo la Paleta de Comandos (Ctrl + Shift + P) y escribiendo parte de la funcionalidad, por ejemplo: format, entonces se muestran las coincidencias y los respectivos atajos de teclado, en mi caso me muestra Formatear todo el documento (Alt + Shift + F) y Formatear la selección (Ctrl + K, Ctrl + F)

Herchi

#2

de extensión Prettier uso la común y sí, ya estaba cambiando en la zona adecuada.

A ti te va el formatear la selección? incluso he cambiado el atajo para ver si es que era eso pero nada, no me formatea la selección en un css.




Mod: Tamaño máximo de las imágenes 800x600.

EdePC

#3
- Dependerá de lo que estén intentado formatear, tu selección tiene que tener contexto o el formateador no sabe como trabajar. Seleccionar unas líneas CSS en un archivo HTML y dar a formatear no me funciona:

Código (css) [Seleccionar]
.items div { margin: 0 .5rem; }
   .items p { margin: 0; }


-- Pero si selecciono todo el CSS si funciona:

Código (css) [Seleccionar]
<style>
   .items .logo { height: 4.5rem; padding: 0 1rem; }
   .items img { height: 3rem; }
   .items div { margin: 0 .5rem; }
   .items p { margin: 0; }
 </style>


Código (css) [Seleccionar]
<style>
   .items .logo {
     height: 4.5rem;
     padding: 0 1rem;
   }
 
   .items img {
     height: 3rem;
   }
 
   .items div {
     margin: 0 .5rem;
   }
 
   .items p {
     margin: 0;
   }
 </style>


-- Y no afecta al codigo html, js que no esté seleccionado. Un truco sería copiar tu código que quieres formatear y pegarlo en una nueva hoja de VSC, luego elegir el formato (HTML, CSS, etc) y formatear todo el documento, VSC comprenderá que el contexto es el formato html, css, etc y no fallará.




Mod: Obligatorio el uso de etiquetas GeSHi para código.

Herchi

pues nada, a mí el formatear seleccionado NUNCA me va y el de documento entero sí: ejemplo

tengo un ejemplo.css (importante, con esa extensión)
Código (css) [Seleccionar]

body {
 padding-left: 11em;
 font-family: Georgia, "Times New Roman", Times, serif;
       color: purple;
 background-color: #d8da3d;
}
ul.navbar {
 list-style-type: none;
       padding: 0;
 margin: 0;
 position: absolute;
 top: 2em;
 left: 1em;
 width: 9em;
}
h1 {
 font-family: Helvetica, Geneva, Arial, SunSans-Regular, sans-serif;
}
ul.navbar li {
 background: white;
 margin: 0.5em 0;
 padding: 0.3em;
 border-right: 1em solid black;
}
ul.navbar a {
 text-decoration: none;
}
a:link {
 color: blue;
}
a:visited {
 color: purple;
}
address {
 margin-top: 1em;
 padding-top: 1em;
}


está mal formateado: color: purple; y padding: 0;
selecciono todo el ul.navbar con las llaves
doy alt + shift + F y formatea TODO el documento (incluido el purple)
doy a deshacer
doy a 'alt + F2' (lo cambié para simplificar) y no hace NADA.


y he probado con varias combinaciones de tecla y nada.

EdePC

- Son limitaciones de la extensión, por lo que he estado probando puede que esta otra te funcione como quieres: https://marketplace.visualstudio.com/items?itemName=michelemelluso.code-beautifier

Herchi

sólo me dio por formatear css, pero he comprobado con horror que otras extensiones comunes no lo hace. mismamente java. Estoy demasiado bien acostumbrado al Eclipse. Me imaginaba que el Prettier era una extensión para formatear las extensiones más comnes (como java) pero no lo hace.

Pruebo con Prettier+ 2.0.0 que pone que sí lo hace y es mentira.
Pruebo con el Prettier+ 3.0.0 y tampoco

De las recomendaciones que me pone al intentar formatear un java instalo la extensión de "Language Support for Java(TM) by Red Hat" pero por si sola tampoco funciona. Te dice que instales la jdk pero para sólo leer código quería algo liviano.

Es un engorro y si no quieres instalar cosas sigue siendo mejor opción para formatear java una web tipo https://www.freecodeformat.com/java-format.php :(



EdePC

- El que mejor formatea el código OffLine es IntelliJ IDEA, te puedes descargar la versión Ultimate, la primera es completamente gratuita, la segunda de de pago pero permite usarlo por 30 días, luego solo permite usarlo por 30 minutos, sin embargo se puede restablecer la licencia de prueba de 30 días indefinidamente, prácticamente es gratis.

- La desventaja es el tiempo de carga por primera vez, el consumo de ram y la necesidad de crear un proyecto para funcionalidades de depuración ejecución y compilación, PERO para formatear y editar va excelente. Puede llegar a consumir su 1GB de ram XD, pero si se deshabilitan características extra que trae se puede llegar a que consuma y arranque casi lo mismo que VSC. Su principal ventaja es la inteligencia que tiene para autocompletar, detectar errores, mostrar sugerencias, formatear a petición y formatear automáticamente mientras se escribe/pega el código. Otras opciones son NetBeans y luego Eclipse pero no se comparan con IIDEA con respecto a la inteligencia detrás del IDE.

- También son de los que piensa que es mejor velocidad y ligereza para echar un vistaso o hacer retoques rápidos al código, por esto tengo Notepad3 reemplazando al Notepad de windows, Sublime como editor de texto predeterminado, Visual Studio para trabajar más tiempo y NetBeans o IntelliJ IDEA para proyectos largos.

- Otra cosa que me gusta de visual studio code es sus colores, ya han superado a sublime y me parece que es de los mejores y más agradables para trabajar. IntelliJ IDEA, NetBeans y demás IDEs no tienen buenos themes o colores, darcula o dracula no me convencen :xD

- La extensión Language Support for Java(TM) by Red Hat es un paquete que pide descargar otras extensiones más, pero trabaja bastante bien para Java, yo no tengo "instalado" el JDK, solo tengo la carpeta del JDK a la que hago referencia gracias a que lo he agregado al PATH.

Herchi

Cita de: EdePC en  9 Septiembre 2019, 18:10 PM
- La extensión Language Support for Java(TM) by Red Hat es un paquete que pide descargar otras extensiones más, pero trabaja bastante bien para Java, yo no tengo "instalado" el JDK, solo tengo la carpeta del JDK a la que hago referencia gracias a que lo he agregado al PATH.
Veo que has probado muchas cosas. La verdad que con entorno pesado me quedo con Eclipse que no requiere nada para indentar el código. Quería un editor de texto liviano que supiera indexar los javas.

Pones que tienes la carpeta JDK sin instalar. He probado con https://portableapps.com/downloading?a=JDK64&n=jdkPortable%2064-bit&s=s&p=&d=pa&f=jdkPortable64_8_Update_221_online.paf.exe para evitar así la instalación. En el visual studio dentro del settings.json he puesto:
"java.home":"D:\\Descargas\\navegador\\CommonFiles\\JDK64\\"
Donde en mi pc tengo el "D:\Descargas\navegador\CommonFiles\JDK64\bin\java.exe" pero al grabar me dice: "java" no se reconoce como un comando interno o externo,
programa o archivo por lotes ejecutable.

EdePC

- Yo no instalo en JDK por dos razones, uno es que no me gusta el Java Updater y otra por que quiero tener varios jdk para trabajar. PERO siempre suele mejor instalarse el JDK para que ponga las variables de entorno, el PATH, las entradas en el registro para ejecutar .jar con parámetros recomendados, etc. Además que las aplicaciones .exe a partir de .jar o java suelen buscar entradas en el registro directamente y no funcionan si no están.

- Puedes usar el OpenJDK si no quieres instalar nada, este viene en Instalable y también en Extraible, la última versión del 8 es jdk8u222-b10_openj9-0.15.1, la extraible es la portable claro está. https://github.com/AdoptOpenJDK/openjdk8-binaries/releases

- Aunque también hay un Batch para extraer el jdk del instalador oficial de Oracle, se tiene que descargar el jdk https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html ofrecen la 8u221, es un lío que hayan quitado la 8u222 y que además pidan registro para descargar, pero siempre se puede servicios de tempmail o fakemail para un correo temporal.

-- El Batch viene de: https://gist.github.com/grabantot/402a4acf63f81ba754b26e2dce1b16a3 pero hay que hacerle unos retoques para que funcione correctamente, además de que requiere que 7-zip esté instalado:

Código (dos) [Seleccionar]
@echo off
set tool7z="%PROGRAMFILES%\7-Zip\7z"
set jdk_exe="%1"

echo Extracting '.rsrc/1033/JAVA_CAB10/111'
%tool7z% e %jdk_exe% .rsrc/1033/JAVA_CAB10/111

echo Extracting '111'
extrac32 111

echo Removing '111'
del 111

echo Extracting 'tools.zip'
%tool7z% x tools.zip -o%~n1

echo Removing 'tools.zip'
del tools.zip

echo Extracting '*.pack'
cd jdk
for /r %%x in (*.pack) do .\bin\unpack200 -r "%%x" "%%~dx%%~px%%~nx.jar"
cd ..

echo Done.


-- Este se guarda con extensión .bat o .cmd en la misma carpeta donde se tiene el instalador del jdk y luego se arrastra dicho instalador sobre el batch y listo, se extrae.

- Al final basta con agregar la ruta a la carpeta BIN del JDK en el PATH y VSC no debería de tener problemas. No he configurado nada en mi settings.json.

-- IMPORTANTE, VSC da error al trata de resolver rutas con guiones, por ejemplo: D:\SFT\JAVA\jdk-8u221-windows-x64, provoca error ya sea esté en el PATH, Regedit, setting.json. En tu caso te basta con quitarle los dos últimos \\ así:

"java.home":"D:\\Descargas\\navegador\\CommonFiles\\JDK64"

- También recuerda que siempre puedes resetear la configuración de VSC eliminando la carpeta: "C:\Users\USUARIO\AppData\Roaming\Code" por si algo no anda bien, yo lo paro eliminando bastante XD.

- La extensión  Language Support for Java(TM) by Red Hat  es fenomenal, me parece que no tiene nada que envidiar a IDEs más completos para trabajar con aplicaciones menores.

-- Sabes que todo anda bien cuando te aparece el Run | Debug sobre tu clase main y aparece la documentación al pasar el cursos del mouse sobre los diferentes objetos, variables, etc del código.