valentincognito
3/22/2019 - 2:05 AM

Atom Custom Snippets

# Your snippets
#
# Atom snippets allow you to enter a simple prefix in the editor and hit tab to
# expand the prefix into a larger code block with templated values.
#
# You can create a new snippet in this file by typing "snip" and then hitting
# tab.
#
# An example CoffeeScript snippet to expand log to console.log:
#
# '.source.coffee':
#   'Console log':
#     'prefix': 'log'
#     'body': 'console.log $1'
#
# Each scope (e.g. '.source.coffee' above) can only be declared once.
#
# This file uses CoffeeScript Object Notation (CSON).
# If you are unfamiliar with CSON, you can read more about it in the
# Atom Flight Manual:
# http://flight-manual.atom.io/using-atom/sections/basic-customization/#_cson

'.source.js':
  'Console log':
    'prefix': 'log'
    'body': """
      console.log(``)
    """

  'Document ready':
    'prefix': 'ready'
    'body': """
      $(function() {
        console.log('ready')
      })
    """

  'On click event':
    'prefix': 'oc'
    'body': """
      $('.class-name').click(function(e){
        e.preventDefault()
      })
    """

  'Dynamic click event':
    'prefix': 'doc'
    'body': """
      $('body').on('click', '.class-name', function(e) {
        e.preventDefault()
      })
    """

  'Ajax':
    'prefix': 'ajax'
    'body': """
      $.ajax({
        url: '/',
        type: 'POST',
        data: {
          field: value
        },
        success: function(data) {
          console.log(data)
        },
        error: function (request, status, error) {
          console.log('code: '+request.status+' error: '+error)
        }
      })
    """

  'Get JSON':
    'prefix': 'getjson'
    'body': """
      $.getJSON("data.json", function(json) {
        console.log(json)
      })
    """

  'Fs readFile':
    'prefix': 'fsread'
    'body': """
      fs.readFile('./public/data.json', (err, data) => {
        if (err) throw err
        let json = JSON.parse(data)
        console.log(json)
      })
    """

  'Fs writeFile':
    'prefix': 'fsWrite'
    'body': """
      fs.writeFile('./data.json', data, (err) => {
        if (err) throw err
        console.log('saved!')
      })
    """

  'Fs listFiles':
    'prefix': 'fslist'
    'body': """
      const directoryPath = path.join(__dirname, 'public')
      fs.readdir(directoryPath, function (err, files) {
        if (err) throw err
        files.forEach(function (file) {
          console.log(file)
        })
      })
    """

  'Random number':
    'prefix': 'rand'
    'body': """
      Math.floor(Math.random() * 6) //random number from 0 to 5
    """

  'Filter by a key value':
    'prefix': 'filter'
    'body': """
      let item = array.find(function (obj) {return obj.key === "value"})
    """

  'Blocking wait function':
    'prefix': 'wait'
    'body': """
      function wait (ms) {
        return new Promise(resolve => setTimeout(() => resolve(), ms))
      }
    """

  'Mongoose new entry':
    'prefix': 'mongoNew'
    'body': """
      let record = new Record()
      record.name = "value"
      record.save(err => {
        if (err)
          res.json({status: 'error', err: err})
        else
          res.json({status: 'success', record: record})
      })
    """

  'Mongoose findById':
    'prefix': 'mongoFindById'
    'body': """
      Model.findById(id, function (err, record) {

      })
    """

  'Form validation':
    'prefix': 'validationOnSubmit'
    'body': """
      $('#my_form').submit(function(e) {
        let validations = [
          {
            description: 'empty field',
            status: $('.field').val().length != 0 ? true : false,
            message: 'field xxx is empty'
          }
        ]

        let isFormValidated = true

        for (let validation of validations) {
          if (!validation.status) {
            e.preventDefault()
            alert(validation.message)
          }
        }

        if (!isFormValidated) {
          e.preventDefault()
        }
      })
    """

'.source.pug':
  'Datetime helper':
    'prefix': 'date'
    'body': """
      - let month = record.date.getMonth() + 1
      td= month.toString().padStart(2, '0') + "/" + record.date.getDate().toString().padStart(2, '0') + "/" + record.date.getFullYear()
    """

  'Select selected option':
    'prefix': 'select'
    'body': """
      selected=(category._id.toString()==article.category ? true : false))
    """

'.source.css':
  'Boilerplate':
    'prefix': 'boilerplate'
    'body': """
      @import url('https://fonts.googleapis.com/css?family=Libre+Baskerville|Open+Sans:400,700');

      *,
      *:after,
      *:before {
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
      }
      html{height: 100%;font-family: 'Open Sans', sans-serif;font-size: 14px;font-weight: 400;word-break: keep-all;}
      body{margin: 0px;color: #000;background-color: #fcfcfc;}

      a {background-color: transparent;text-decoration: none;color: inherit;display: block;opacity: 1;transition: all 0.2s ease-in-out;}
      a:active,
      a:hover{outline: 0;text-decoration: none;color: inherit;}

      /** helpers **/
      .show{display: block;}
      .hidden{display: none !important;}
      .pull-left{float: left;}
      .pull-right{float: right;}
      .text-left{text-align: left;}
      .text-right{text-align: right;}
      .text-center{text-align: center;}
      .block{display: block;}
      .inline-block{display: inline-block;}
      .clearfix:before,
      .clearfix:after {content: "";display: table;}
      .clearfix:after {clear: both;}
      .clearfix {zoom: 1; /* ie 6/7 */}
      /* helpers end  */

      /** common **/
      .content{
        position: relative;
        margin: 0 auto;
        padding: 40px;
      }
    """