Group editor.increase/decreaseIndentPattern settings under editor.indent

Since these settings are paired, we don’t want to retrieve settings
from two different scopes for a given usage. This also emits a
deprecation warning when the old settings are used.
Esse commit está contido em:
Nathan Sobo
2014-12-11 10:49:20 -07:00
commit c8b92526ec
5 arquivos alterados com 51 adições e 17 exclusões
@@ -1,5 +1,6 @@
'.source.omg':
'editor':
'increaseIndentPattern': '^a'
'decreaseIndentPattern': '^z'
'commentStart': '/*'
'commentEnd': '*/'
+15 -3
Ver Arquivo
@@ -369,7 +369,7 @@ describe "PackageManager", ->
atom.packages.activatePackage("package-with-scoped-properties")
runs ->
expect(atom.config.get ['.source.omg'], 'editor.increaseIndentPattern').toBe '^a'
expect(atom.config.get ['.source.omg'], 'editor.indent.increasePattern').toBe '^a'
it "combines 'editor.commentStart' and 'editor.commentEnd' strings under the 'editor.comment' key path", ->
if atom.packages.isPackageLoaded("package-with-scoped-properties")
@@ -383,6 +383,18 @@ describe "PackageManager", ->
expect(atom.config.get ['.source.omg'], 'editor.comment.end').toBe '*/'
expect(Grim.deprecate).toHaveBeenCalled()
it "combines 'editor.increaseIndentPattern' and 'editor.decreaseIndentPattern' strings under the 'editor.indent' key path", ->
if atom.packages.isPackageLoaded("package-with-scoped-properties")
atom.packages.unloadPackage("package-with-scoped-properties")
waitsForPromise ->
atom.packages.activatePackage("package-with-scoped-properties")
runs ->
expect(atom.config.get ['.source.omg'], 'editor.indent.increasePattern').toBe '^a'
expect(atom.config.get ['.source.omg'], 'editor.indent.decreasePattern').toBe '^z'
expect(Grim.deprecate).toHaveBeenCalled()
describe "converted textmate packages", ->
it "loads the package's grammars", ->
expect(atom.grammars.selectGrammar("file.rb").name).toBe "Null Grammar"
@@ -507,9 +519,9 @@ describe "PackageManager", ->
atom.packages.activatePackage("package-with-scoped-properties")
runs ->
expect(atom.config.get ['.source.omg'], 'editor.increaseIndentPattern').toBe '^a'
expect(atom.config.get ['.source.omg'], 'editor.indent.increasePattern').toBe '^a'
atom.packages.deactivatePackage("package-with-scoped-properties")
expect(atom.config.get ['.source.omg'], 'editor.increaseIndentPattern').toBeUndefined()
expect(atom.config.get ['.source.omg'], 'editor.indent.increasePattern').toBeUndefined()
describe "textmate packages", ->
it "removes the package's grammars", ->
+7 -4
Ver Arquivo
@@ -88,10 +88,13 @@ module.exports =
type: ['string', 'null']
end:
type: ['string', 'null']
increaseIndentPattern:
type: ['string', 'null']
decreaseIndentPattern:
type: ['string', 'null']
indent:
type: 'object'
properties:
increasePattern:
type: ['string', 'null']
decreasePattern:
type: ['string', 'null']
foldEndPattern:
type: ['string', 'null']
+16 -10
Ver Arquivo
@@ -249,7 +249,14 @@ class LanguageMode
suggestedIndentForBufferRow: (bufferRow, options) ->
currentIndentLevel = @editor.indentationForBufferRow(bufferRow)
scopeDescriptor = @editor.scopeDescriptorForBufferPosition([bufferRow, 0])
return currentIndentLevel unless increaseIndentRegex = @increaseIndentRegexForScopeDescriptor(scopeDescriptor)
indentPatterns = atom.config.get(scopeDescriptor, 'editor.indent')
if indentPatterns?.increasePattern?
increaseIndentRegex = new OnigRegExp(indentPatterns.increasePattern)
if indentPatterns?.decreasePattern?
decreaseIndentRegex = new OnigRegExp(indentPatterns.decreasePattern)
return currentIndentLevel unless increaseIndentRegex?
currentLine = @buffer.lineForRow(bufferRow)
if options?.skipBlankLines ? true
@@ -263,7 +270,7 @@ class LanguageMode
desiredIndentLevel = @editor.indentationForBufferRow(precedingRow)
desiredIndentLevel += 1 if increaseIndentRegex.testSync(precedingLine) and not @editor.isBufferRowCommented(precedingRow)
return desiredIndentLevel unless decreaseIndentRegex = @decreaseIndentRegexForScopeDescriptor(scopeDescriptor)
return desiredIndentLevel unless decreaseIndentRegex?
desiredIndentLevel -= 1 if decreaseIndentRegex.testSync(currentLine)
Math.max(desiredIndentLevel, 0)
@@ -299,8 +306,13 @@ class LanguageMode
# bufferRow - The row {Number}
autoDecreaseIndentForBufferRow: (bufferRow) ->
scopeDescriptor = @editor.scopeDescriptorForBufferPosition([bufferRow, 0])
increaseIndentRegex = @increaseIndentRegexForScopeDescriptor(scopeDescriptor)
decreaseIndentRegex = @decreaseIndentRegexForScopeDescriptor(scopeDescriptor)
indentPatterns = atom.config.get(scopeDescriptor, 'editor.indent')
if indentPatterns?.increasePattern?
increaseIndentRegex = new OnigRegExp(indentPatterns.increasePattern)
if indentPatterns?.decreasePattern?
decreaseIndentRegex = new OnigRegExp(indentPatterns.decreasePattern)
return unless increaseIndentRegex and decreaseIndentRegex
line = @buffer.lineForRow(bufferRow)
@@ -321,11 +333,5 @@ class LanguageMode
if pattern = atom.config.get(scopeDescriptor, property)
new OnigRegExp(pattern)
increaseIndentRegexForScopeDescriptor: (scopeDescriptor) ->
@getRegexForProperty(scopeDescriptor, 'editor.increaseIndentPattern')
decreaseIndentRegexForScopeDescriptor: (scopeDescriptor) ->
@getRegexForProperty(scopeDescriptor, 'editor.decreaseIndentPattern')
foldEndRegexForScopeDescriptor: (scopeDescriptor) ->
@getRegexForProperty(scopeDescriptor, 'editor.foldEndPattern')
+12
Ver Arquivo
@@ -25,6 +25,18 @@ class ScopedProperties
delete properties.editor.commentEnd
Grim.deprecate("The 'editor.commentEnd' setting has been moved to 'editor.comment.end'. Please update `#{@path}`.")
if properties.editor?.increaseIndentPattern?
properties.editor.indent ?= {}
properties.editor.indent.increasePattern ?= properties.editor.increaseIndentPattern
delete properties.editor.increaseIndentPattern
Grim.deprecate("The 'editor.increaseIndentPattern' setting has been moved to 'editor.indent.increasePattern'. Please update `#{@path}`.")
if properties.editor?.decreaseIndentPattern?
properties.editor.indent ?= {}
properties.editor.indent.decreasePattern ?= properties.editor.decreaseIndentPattern
delete properties.editor.decreaseIndentPattern
Grim.deprecate("The 'editor.decreaseIndentPattern' setting has been moved to 'editor.indent.decreasePattern'. Please update `#{@path}`.")
@propertyDisposable = new CompositeDisposable
activate: ->