【问题标题】:Atom snippets not working with scss multiline snippetAtom 片段不适用于 scss 多行片段
【发布时间】:2016-09-02 09:10:49
【问题描述】:

我正在尝试在 Atom 编辑器中使用我的自定义 sn-ps。这是我的 sn-ps.cson 文件:

# 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:
# https://atom.io/docs/latest/using-atom-basic-customization#cson
'.text.html.basic':
  'Bootstrap css link':
    'prefix': 'bootstrap'
    'body': '<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">$1'

  'Vue minified':
    'prefix': 'vuemin'
    'body': '<script src="https://cdn.jsdelivr.net/vue/latest/vue.min.js"></script>$1'

  'Vue develompent':
    'prefix': 'vuedev'
    'body': '<script src="https://cdn.jsdelivr.net/vue/latest/vue.js"></script>$1'

  'Placehold img':
    'prefix': 'ph'
    'body': '<img src="https://placehold.it/$1" alt="">'
  'Telephone':
    'prefix': 'tel'
    'body': '<a href="tel:+48888888888$1">+48 888 888 888</a>'

'.source.css.scss':
  'Breakpoint Foundation':
    'prefix': 'bp'
    'body': """
      @include breakpoint($1) {
        $2
      }
    """

'.source.css.scss':
  'Breakpoint Foundation Medium':
    'prefix': 'bpm'
    'body': """
      @include breakpoint(medium) {
        $1
      }
    """

'.source.css.scss':
  'Breakpoint Foundation Large':
    'prefix': 'bpl'
    'body': """
      @include breakpoint(large) {
        $1
      }
    """

  'Kentico comment':
    'prefix': 'kc'
    'body': '/*#$1#*/'

除了这部分,一切正常:

'.source.css.scss':
  'Breakpoint Foundation':
    'prefix': 'bp'
    'body': """
      @include breakpoint($1) {
        $2
      }
    """

'.source.css.scss':
  'Breakpoint Foundation Medium':
    'prefix': 'bpm'
    'body': """
      @include breakpoint(medium) {
        $1
      }
    """

'.source.css.scss':
  'Breakpoint Foundation Large':
    'prefix': 'bpl'
    'body': """
      @include breakpoint(large) {
        $1
      }
    """

当我编辑 scss 文件时,只有 bplkc sn-p 工作。 我有 1.10.0 Atom 和 1.11.0 autocomplete-sn-ps 和 1.0.2 sn-ps 插件。

【问题讨论】:

  • 您可能应该缩短示例并删除所有与您的问题无关的 cmets 和 sn-ps。

标签: sass atom-editor cson


【解决方案1】:

您需要将所有共享相同范围的 sn-ps 分组,否则之前的实例会被后面的实例覆盖。

示例

'.source.css.scss':
  'Breakpoint Foundation':
    'prefix': 'bp'
    'body': """
      @include breakpoint($1) {
        $2
      }
    """
  'Breakpoint Foundation Medium':
    'prefix': 'bpm'
    'body': """
      @include breakpoint(medium) {
        $1
      }
    """
  'Breakpoint Foundation Large':
    'prefix': 'bpl'
    'body': """
      @include breakpoint(large) {
        $1
      }
    """

有人可能会争辩说,Atom 应该合并这些键,但开发人员需要 discussion

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-14
    • 2017-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多