Giter Club home page Giter Club logo

hook_tools's Introduction

hook_tools

Estas son herramientas que ayudan a mantener el código en los distintos repositorios del proyecto omegaUp con un estilo consistente.

Para agregar hook_tools a tu repositorio:

  • Agrega hook_tools como submódulo de git en algún lugar de tu repositorio.
  • Agrega un archivo .lint.config.json en la raíz de tu repositorio.
  • Invoca hook_tools/lint.py validate --all en tu archivo .travis.yml o en los git pre-upload hooks.
  • Si estás en un sistema que soporta correr Docker, puedes también correr docker run -v $PWD:/src omegaup/hook_tools validate --all.

.lint.config.json

Este es un diccionario de configuración de los linters que se van a correr. Los linters soportados (con sus respectivas opciones) son:

  • whitespace: Elimina molestos espacios en blanco, como espacios al final de la línea, múltiples líneas vacías, saltos de línea estilo Windows.
  • javascript: Corre el linter del Google Closure Compiler, seguido de ClangFormat.
    • extra_js_linters: Un arreglo con comandos que se van a correr.
  • html: Corre HTML Tidy.
    • strict: Un bool que indica si se va a correr en modo estricto
  • vue: Corre los linters de javascript y html en las distintas secciones de un Vue template.
    • extra_js_linters: Un arreglo con comandos que se van a correr en la sección <script>..</script> del template.
  • php: Corre PHP Code Beautifier.
    • standard: Una cadena con la ruta del estándar de phpcbf.
  • python: Corre pep8 y pylint.
    • pep8_config: Una cadena con la ruta del archivo de configuración para pep8.
    • pylint_config: Una cadena con la ruta del archivo de configuración para pylint.
  • custom: Corre comandos personalizados.
    • commands: Un arreglo con comandos.

Todos los linters soportan dos opciones adicionales:

  • whitelist: Un arreglo con expresiones regulares. Los archivos a considerar para el linter actual deben de hacer match con al menos un regex de este arreglo.
  • blacklist: Un arreglo con expresiones regulares. Los archivos a considerar para el linter actual deben de no hacer match con ningún regex de este arreglo.

Comandos personalizados

Tanto el linter custom como javascript soportan comandos personalizados. Estos comandos se van a correr tal-cual con dos argumentos extra: el nombre del archivo (temporal) que debe de actualizarse con el contenido correctamente formateado, y el nombre de archivo original (si se desea escribir información de depuración a stderr). Este comando se ejecutará mediante /bin/bash.

hook_tools's People

Contributors

lhchavez avatar pabo99 avatar spacewhite avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.