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:
+1
@@ -1,5 +1,6 @@
|
||||
'.source.omg':
|
||||
'editor':
|
||||
'increaseIndentPattern': '^a'
|
||||
'decreaseIndentPattern': '^z'
|
||||
'commentStart': '/*'
|
||||
'commentEnd': '*/'
|
||||
|
||||
@@ -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", ->
|
||||
|
||||
@@ -88,9 +88,12 @@ module.exports =
|
||||
type: ['string', 'null']
|
||||
end:
|
||||
type: ['string', 'null']
|
||||
increaseIndentPattern:
|
||||
indent:
|
||||
type: 'object'
|
||||
properties:
|
||||
increasePattern:
|
||||
type: ['string', 'null']
|
||||
decreaseIndentPattern:
|
||||
decreasePattern:
|
||||
type: ['string', 'null']
|
||||
foldEndPattern:
|
||||
type: ['string', 'null']
|
||||
|
||||
+16
-10
@@ -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')
|
||||
|
||||
@@ -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: ->
|
||||
|
||||
Referência em uma Nova Issue
Bloquear um usuário