class: slide-intro ## The awesome syntax checking plugin for vim ``` It's a bird! It's a plane! ZOMG It's ... _____ __ __ _ / ___/__ ______ / /_____ ______/ /_(_)____ \__ \/ / / / __ \/ __/ __ `/ ___/ __/ / ___/ ___/ / /_/ / / / / /_/ /_/ (__ ) /_/ / /__ /____/\__, /_/ /_/\__/\__,_/____/\__/_/\___/ /____/ ``` > [github.com/scrooloose/syntastic](https://github.com/scrooloose/syntastic) --- class: content-centered whoami # Who am I?
Timothée Carry,
@pixelastic
Fullstack Craftsman at
--- class: slide-intro # Linter? --- ## > basic syntax issues ![Syntax error](./img/syntax-error.png) --- ## > improvements ![Best practices](./img/best-practices.png) --- ## > styleguide ![Styleguide](./img/styleguide.png) --- # CI is asynchronous... ![Jenkins](./img/jenkins.png) ![Coveralls](./img/coveralls.png) ![TravisCI](./img/travis.png) --- # Instant feedback ![Screencast](./img/screencast.gif) --- ## Awesome for new languages ### 1. Personal teacher ### 2. Learn faster ### 3. Best practices --- ## Languages ActionScript, Ada, Ansible configurations, API Blueprint, AppleScript, AsciiDoc, ASM, BEMHTML, Bro, Bourne shell, C, C++, C#, Cabal, Chef, CoffeeScript, Coco, Coq, CSS, Cucumber, CUDA, D, Dart, DocBook, Dockerfile, Dust, Elixir, Erlang, eRuby, Fortran, Gentoo metadata, GLSL, Go, Haml, Haskell, Haxe, Handlebars, HSS, HTML, Jade, Java, JavaScript, JSON, JSX, LESS, Lex, Limbo, LISP, LLVM intermediate language, Lua, Markdown, MATLAB, Mercury, NASM, Nix, Objective-C, Objective-C++, OCaml, Perl, Perl POD, PHP, gettext Portable Object, OS X and iOS property lists, Puppet, Python, QML, R, Racket, Relax NG, reStructuredText, RPM spec, Ruby, SASS/SCSS, Scala, Slim, SML, Sphinx, SQL, Stylus, Tcl, TeX, Texinfo, Twig, TypeScript, Vala, Verilog, VHDL, VimL, xHtml, XML, XSLT, XQuery, YACC, YAML, z80, Zope page templates, and zsh. --- ## Easy to setup #### 1. github.com/scrooloose/syntastic #### 2. linter in `$PATH` #### 3. opt-in / opt-out --- ## Easy to contribute #### [Recess](https://twitter.github.io/recess/) (SCSS Styleguide) #### [Flog](https://github.com/seattlerb/flog) (Ruby complexity) #### [Stylelint](https://github.com/stylelint/stylelint) (CSS Styleguide) #### [Dockerfile_lint](https://github.com/projectatomic/dockerfile_lint) (Dockerfile syntax & best practices) --- ## Need parsable output ![Output](./img/parsing-stylelint.png) ![Output JSON](./img/parsing-stylelint-json.png) --- # Takeaways
Eslint (JavaScript)
Rubocop (Ruby)
ShellCheck (Shell)
Pylint (Python)
--- class: slide-questions, content-centered # Questions?
tim@
pixelastic
.com