Developer // Telecomunicaciones // Capoeira // Me gusta aprender de los que están cambiando vidas.

2016/10/01

Tareas automatizadas con Visual Studio Code

Visual Studio Code es el editor que uso para programar. Una de las características que más me gusta es que se pueden integrar herramientas externas utilizando tareas. Las tareas permiten ejecutar comandos para deployment, revisión de estilo, pruebas unitarias, entre otros, directamente desde el editor.

Hago muchos programas en Python, y tres tareas que siempre configuro son: run para ejecutar scripts, pep8 para revisar estilo y test para correr pruebas unitarias. Este es mi archivo tasks.json:

{
    "version": "0.1.0",
    "osx": {
        "command": "sh",
        "args": ["-c"]
    },
    "windows": {
        "command": "cmd",
        "args": ["/C"]
    },
    "isShellCommand": true,
    "suppressTaskName": true,
    "showOutput": "always",
    "tasks": [
        {
            "taskName": "run",
            "args": ["python ${file}"]
        },
        {
            "taskName": "pep8",
            "args": ["pep8 ${file}"]
        },
        {
            "taskName": "test",
            "args": ["python tests.py"]
        }
   ]
}


Como las tareas se escriben por cada proyecto, hice un snippet JSON que me permite agregarlas rápidamente:

{
     "python_tasks": {
        "prefix": "pytasks",
        "body": [
            "{",
            "    \"version\": \"0.1.0\",",
            "    \"osx\": {",
            "        \"command\": \"sh\",",
            "        \"args\": [\"-c\"]",
            "    },",
            "    \"windows\": {",
            "        \"command\": \"cmd\",",
            "        \"args\": [\"/C\"]",
            "    },",
            "    \"isShellCommand\": true,",
            "    \"suppressTaskName\": true,",
            "    \"showOutput\": \"always\",",
            "    \"tasks\": [",
            "        {",
            "            \"taskName\": \"run\",",
            "            \"args\": [\"python $\\{file\\}\"]",
            "        },",
            "        {",
            "            \"taskName\": \"pep8\",",
            "            \"args\": [\"pep8 $\\{file\\}\"]",
            "        },",
            "        {",
            "            \"taskName\": \"test\",",
            "            \"args\": [\"python tests.py\"]",
            "        }",
            "   ]",
            "}"
        ],
        "description": "Creates python tasks"
    }
}


Hay muchas formas de personalizar Visual Studio Code y cientos de extensiones ya desarrolladas.