Esta es la configuración de Visual Studio Code que se recomienda para seguir este curso.
Esta lección no detalla los pasos para configurar Visual Studio Code. En caso necesario, puede consultar la lección Personalización de VSC de los apuntes de Informática general, en la que se explica detalladamente cómo se personaliza Visual Studio Code. En dichos apuntes también puede consultar lecciones dedicadas a Visual Studio Code, como Presentación general, Instalación, Uso y otras, que le pueden ser de ayuda si no conoce Visual Studio Code.
El tema de color es un aspecto muy personal por lo que se deja a elección del alumno el tema de color empleado.
En las capturas de los apuntes se empleará el Tema Dark+ (default dark).
Esta es el área de trabajo recomendada para seguir este curso.
Estas son las preferencias de configuración que se aconseja establecer para seguir este curso.
Las preferencias propuestas relacionadas con extensiones requieren la instalación de las extensiones correspondientes.
//
//
// Configuraciones recomendadas para el curso Introducción a la programación con Python
//
// Files: Insert Final Newline
// Si se habilita, inserte una nueva línea al final del archivo cuando lo guarde.
"files.insertFinalNewline": true,
//
// Python > Formatting: Provider
// Provider for formatting. Possible options include 'autopep8', 'black', and 'yapf'.
"python.formatting.provider": "black",
//
// Extensión multi-command
"multiCommand.commands": [
{
"command": "multiCommand.clearTerminal",
"sequence": [
{
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "clear\u000D"
}
},
"workbench.action.focusActiveEditorGroup",
],
},
{
"command": "multiCommand.pythonExecuteInTerminal",
"sequence": [
"workbench.action.terminal.focus",
{
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "cd '${fileDirname}'\u000Dclear\u000Dpy '${fileBasename}'\u000D"
}
},
"workbench.action.focusActiveEditorGroup",
],
},
{
"command": "multiCommand.pythonExecuteAndFocusInTerminal",
"sequence": [
"workbench.action.terminal.focus",
{
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "cd '${fileDirname}'\u000Dclear\u000Dpy '${fileBasename}'\u000D"
}
},
],
},
{
"command": "multiCommand.pythonMptcInTerminal",
"sequence": [
"workbench.action.terminal.focus",
{
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "cd '${fileDirname}'\u000Dclear\u000Dmptc '${fileBasename}' "
}
},
],
},
],
//
// Extensión pylint
"python.linting.pylintArgs": [
"--extension-pkg-whitelist=pygame",
"--disable=C0103, C0114, C0115, C0116, C0301, C0302, C0330",
// Pylint features. Pylint global options and switches
// http://pylint.pycqa.org/en/2.4/technical_reference/features.html
// http://pylint.pycqa.org/en/latest/technical_reference/features.html
// C0103: invalid-name - Used when the name doesn't conform to naming rules associated to its type (constant, variable, class...).
// C0114: missing-module-docstring - Used when a module has no docstring.Empty modules do not require a docstring.
// C0115: missing-class-docstring - Used when a class has no docstring.Even an empty class must have a docstring.
// C0116: missing-function-docstring - Used when a function or method has no docstring.Some special methods like __init__ do not require a docstring.
// C0301: line-too-long
// C0302: too-many-lines
// C0330: bad-continuation - Wrong %s indentation%s%s. TODO
],
//
//
{
// Configuraciones recomendadas para el curso Introducción a la programación con Python
//
// Files: Insert Final Newline
// Si se habilita, inserte una nueva línea al final del archivo cuando lo guarde.
"files.insertFinalNewline": true,
//
// Python > Formatting: Provider
// Provider for formatting. Possible options include 'autopep8', 'black', and 'yapf'.
"python.formatting.provider": "black",
//
// Extensión multi-command
"multiCommand.commands": [
{
"command": "multiCommand.clearTerminal",
"sequence": [
{
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "clear\u000D"
}
},
"workbench.action.focusActiveEditorGroup",
],
},
{
"command": "multiCommand.pythonExecuteInTerminal",
"sequence": [
"workbench.action.terminal.focus",
{
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "cd '${fileDirname}'\u000Dclear\u000Dpy '${fileBasename}'\u000D"
}
},
"workbench.action.focusActiveEditorGroup",
],
},
{
"command": "multiCommand.pythonExecuteAndFocusInTerminal",
"sequence": [
"workbench.action.terminal.focus",
{
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "cd '${fileDirname}'\u000Dclear\u000Dpy '${fileBasename}'\u000D"
}
},
],
},
{
"command": "multiCommand.pythonMptcInTerminal",
"sequence": [
"workbench.action.terminal.focus",
{
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "cd '${fileDirname}'\u000Dclear\u000Dmptc '${fileBasename}' "
}
},
],
},
],
//
// Extensión pylint
"python.linting.pylintArgs": [
"--extension-pkg-whitelist=pygame",
"--disable=C0103, C0114, C0115, C0116, C0301, C0302, C0330",
// Pylint features. Pylint global options and switches
// http://pylint.pycqa.org/en/2.4/technical_reference/features.html
// http://pylint.pycqa.org/en/latest/technical_reference/features.html
// C0103: invalid-name - Used when the name doesn't conform to naming rules associated to its type (constant, variable, class...).
// C0114: missing-module-docstring - Used when a module has no docstring.Empty modules do not require a docstring.
// C0115: missing-class-docstring - Used when a class has no docstring.Even an empty class must have a docstring.
// C0116: missing-function-docstring - Used when a function or method has no docstring.Some special methods like __init__ do not require a docstring.
// C0301: line-too-long
// C0302: too-many-lines
// C0330: bad-continuation - Wrong %s indentation%s%s. TODO
],
//
}
Estas son las dos extensiones que se aconseja instalar para seguir este curso.
Autor: ryuta46
Marketplace: multi-command
Repositorio GitHub: multi-command
Esta extensión permite crear comandos que ejecuten a su vez varios comandos de Visual Studio Code.
Autor: Microsoft (Don Jayamanne)
Marketplace: Python
Repositorio GitHub: Python
Don Jayamanne, el creador de la extensión Python trabaja en Microsoft desde noviembre de 2017. Desde entonces, la extensión se publica como extensión oficial por parte de Microsoft y además se publica regularmente todos los meses.
En el Blog de Python en Microsoft se anuncian las novedades mensuales en la extensión Python:
Al instalar la extensión Python en Visual Studio Code, se debe instalar el módulo pylint y es conveniente instalar un módulo de autoformato.
Al guardar por primera vez un programa de Python, Visual Studio Code mostrará un aviso indicando que no hay ningún linter instalado y ofrecerá la opción de instalar pylint automáticamente.
Nota: Como puede verse en la captura, se muestra un aviso en color amarillo indicando que los paquetes se han instalado en una carpeta que no está en la variable de entorno de Windows PATH. Eso se debe a que VSCode instala los paquetes con la opción --user, por lo que los paquetes se instalan en la carpeta ..\AppData\Roaming\Python\..., mientras que Python está instalado en ..\AppData\Local\Programs\Python\... En principio no es necesario añadir ninguna carpeta al PATH de Windows.
La configuración inicial de Pylint en VSCode es una configuración mínima (documentación de VSCode) que conviene modificar, sobre todo si trabajamos con pygame, para evitar que se muestren muchos avisos irrelevantes.
La lista de mensajes de error y avisos de Pylint se encuentra en el apartado Pylint Features de la documentación de Pylint.
Nota: Estas preferencias están incluidas en el apartado anterior de preferencias de configuración. No es necesario añadirlas si ya se han añadido anteriormente.
//
// Extensión pylint (configuración para ejercicios pygame)
"python.linting.pylintArgs": [
"--extension-pkg-whitelist=pygame",
"--disable=C0103, C0114, C0115, C0116",
// Pylint features. Pylint global options and switches
// http://pylint.pycqa.org/en/2.4/technical_reference/features.html
// http://pylint.pycqa.org/en/latest/technical_reference/features.html
// C0103: invalid-name - Used when the name doesn't conform to naming rules associated to its type (constant, variable, class...).
// C0114: missing-module-docstring - Used when a module has no docstring.Empty modules do not require a docstring.
// C0115: missing-class-docstring - Used when a class has no docstring.Even an empty class must have a docstring.
// C0116: missing-function-docstring - Used when a function or method has no docstring.Some special methods like __init__ do not require a docstring.
],
//
//
Al formatear código por primera vez después de instalar la extensión Python, Visual Studio Code mostrará un aviso indicando que no hay ningún formateador de código de Python instalado y que le ofrecerá la opción de instalar algún módulo de autoformato. Actualmente (enero de 2021), los módulos de autoformato que ofrece son:
Nota: En estos apuntes se recomienda el módulo black, pero se podría utilizar otro módulo. El formato aplicado no afecta al resultado ni a la velocidad de ejecución de los programas.
Nota: Como puede verse en la captura, se muestra un aviso en color amarillo indicando que los paquetes se han instalado en una carpeta que no está en la variable de entorno de Windows PATH. Eso se debe a que VSCode instala los paquetes con la opción --user, por lo que los paquetes se instalan en la carpeta ..\AppData\Roaming\Python\..., mientras que Python está instalado en ..\AppData\Local\Programs\Python\... En principio no es necesario añadir ninguna carpeta al PATH de Windows.
No es necesario añadir ninguna tarea específica.
Estos son los atajos de teclado que se aconseja añadir para seguir este curso.
//
// Atajos de teclado recomendados para el curso Introducción a la programación con Python de www.mclibre.org
{
// Pasar el foco al terminal
"key": "ctrl+alt+NumPad_Add",
"command": "workbench.action.terminal.focus"
},
{
// Pasar el foco al editor de programa
"key": "ctrl+alt+NumPad_Subtract",
"command": "workbench.action.focusActiveEditorGroup",
"when": "terminalFocus"
},
{
// Eliminar atajo predeterminado para liberar el atajo Ctrl+Alt+t
"key": "ctrl+alt+t",
"command": "-workbench.action.terminal.focus"
},
{
// Limpiar el terminal
"key": "ctrl+alt+t ctrl+alt+l",
"command": "multiCommand.clearTerminal"
},
{
// Cerrar el terminal
"key": "ctrl+alt+t ctrl+alt+c",
"command": "workbench.action.terminal.kill"
},
{
// Ejecutar programa de Python en el terminal (manteniendo el foco en el editor)
"key": "ctrl+alt+f5",
"command": "multiCommand.pythonExecuteInTerminal",
},
{
// Ejecutar programa de Python en el terminal (pasando el foco al terminal)
"key": "ctrl+alt+shift+f5",
"command": "multiCommand.pythonExecuteAndFocusInTerminal"
},
{
// Ejecutar MPTC en el terminal (el usuario debe escribir el código MPTC)
"key": "ctrl+alt+f6",
"command": "multiCommand.pythonMptcInTerminal",
},
//
// Atajos de teclado recomendados para el curso Introducción a la programación con Python de www.mclibre.org
[
{
// Pasar el foco al terminal
"key": "ctrl+alt+NumPad_Add",
"command": "workbench.action.terminal.focus"
},
{
// Pasar el foco al editor de programa
"key": "ctrl+alt+NumPad_Subtract",
"command": "workbench.action.focusActiveEditorGroup",
"when": "terminalFocus"
},
{
// Eliminar atajo predeterminado para liberar el atajo Ctrl+Alt+t
"key": "ctrl+alt+t",
"command": "-workbench.action.terminal.focus"
},
{
// Limpiar el terminal
"key": "ctrl+alt+t ctrl+alt+l",
"command": "multiCommand.clearTerminal"
},
{
// Cerrar el terminal
"key": "ctrl+alt+t ctrl+alt+c",
"command": "workbench.action.terminal.kill"
},
{
// Ejecutar programa de Python en el terminal (manteniendo el foco en el editor)
"key": "ctrl+alt+f5",
"command": "multiCommand.pythonExecuteInTerminal",
},
{
// Ejecutar programa de Python en el terminal (pasando el foco al terminal)
"key": "ctrl+alt+shift+f5",
"command": "multiCommand.pythonExecuteAndFocusInTerminal"
},
{
// Ejecutar MPTC en el terminal (el usuario debe escribir el código MPTC)
"key": "ctrl+alt+f6",
"command": "multiCommand.pythonMptcInTerminal",
},
]
Entre los atajos recomendados, cuatro de ellos están relacionados con la ventana de terminal:
Si no se había abierto todavía ninguna ventana de terminal, el atajo abre una nueva ventana de terminal automáticamente. La primera vez que se abre una ventana de terminal, la ventana se abre en el directorio raíz del área de trabajo.
Los dos atajos (Ctrl+Alt+F5 y Ctrl+Alt+Shift+F5) permiten ejecutar el programa de Python que se esté editando. El programa se ejecuta en la ventana de terminal PowerShell de Visual Studio Code. Se ha elegido la tecla F5 ya que esta es la tecla que permite ejecutar programas en IDLE.
Ambos atajos cambian automáticamente al directorio en el que se encuentra el programa y lo ejecutan en ese directorio.
La diferencia entre ambos atajos es que:
Si no se han definido los atajos de teclado anteriores, el programa se puede ejecutar igualmente haciendo clic derecho en el nombre del programa en el explorador y eligiendo la opción "Ejecutar archivo Python en la terminal" ...
... o haciendo clic derecho en el cuerpo del programa y eligiendo la opción "Ejecutar archivo Python en la terminal".
En ambos casos, el terminal se abre en el directorio raíz del área de trabajo y el foco se mantiene en el editor.
El atajo Ctrl+Alt+F6 está pensado para facilitar el uso de MPTC. .