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 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:
Para complementar la extensión Python, se recomienda instalar las extensiones Pylint y Black Formatter.
Autor: Microsoft
Marketplace: Pylint
Repositorio GitHub: Pylint
pylint es un analizador de código estático para Python. Esta extensión incluye la última versión de pylint para su uso por la extensión Python.
La lista de mensajes de error y avisos de Pylint se puede consultar en el apartado Pylint Features de la documentación de Pylint.
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.
Autor: Microsoft
Marketplace: Black Formatter
Repositorio GitHub: Black Formatter
Black es un formateador de código Python. Esta extensión incluye la última versión de black para su uso por la extensión Python.
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,
//
// 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
"pylint.importStrategy": "useBundled",
"pylint.args":[
"--extension-pkg-whitelist=pygame",
"--disable=C0103, C0114, C0115, C0116, C0301, C0302",
// 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
],
//
// Extensión Black Formatter
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
},
"python.formatting.provider": "none",
"black-formatter.importStrategy": "useBundled",
//
//
{
// 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,
//
// 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
"pylint.importStrategy": "useBundled",
"pylint.args":[
"--extension-pkg-whitelist=pygame",
"--disable=C0103, C0114, C0115, C0116, C0301, C0302",
// 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
],
//
// Extensión Black Formatter
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
},
"python.formatting.provider": "none",
"black-formatter.importStrategy": "useBundled",
//
//
}
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+Mayús+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 el archivo de Python en terminal" ...
... o haciendo clic derecho en el cuerpo del programa y eligiendo la opción "Ejecutar el archivo de Python en 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. .