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':
|
'.source.omg':
|
||||||
'editor':
|
'editor':
|
||||||
'increaseIndentPattern': '^a'
|
'increaseIndentPattern': '^a'
|
||||||
|
'decreaseIndentPattern': '^z'
|
||||||
'commentStart': '/*'
|
'commentStart': '/*'
|
||||||
'commentEnd': '*/'
|
'commentEnd': '*/'
|
||||||
|
|||||||
@@ -369,7 +369,7 @@ describe "PackageManager", ->
|
|||||||
atom.packages.activatePackage("package-with-scoped-properties")
|
atom.packages.activatePackage("package-with-scoped-properties")
|
||||||
|
|
||||||
runs ->
|
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", ->
|
it "combines 'editor.commentStart' and 'editor.commentEnd' strings under the 'editor.comment' key path", ->
|
||||||
if atom.packages.isPackageLoaded("package-with-scoped-properties")
|
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(atom.config.get ['.source.omg'], 'editor.comment.end').toBe '*/'
|
||||||
expect(Grim.deprecate).toHaveBeenCalled()
|
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", ->
|
describe "converted textmate packages", ->
|
||||||
it "loads the package's grammars", ->
|
it "loads the package's grammars", ->
|
||||||
expect(atom.grammars.selectGrammar("file.rb").name).toBe "Null Grammar"
|
expect(atom.grammars.selectGrammar("file.rb").name).toBe "Null Grammar"
|
||||||
@@ -507,9 +519,9 @@ describe "PackageManager", ->
|
|||||||
atom.packages.activatePackage("package-with-scoped-properties")
|
atom.packages.activatePackage("package-with-scoped-properties")
|
||||||
|
|
||||||
runs ->
|
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")
|
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", ->
|
describe "textmate packages", ->
|
||||||
it "removes the package's grammars", ->
|
it "removes the package's grammars", ->
|
||||||
|
|||||||
@@ -88,10 +88,13 @@ module.exports =
|
|||||||
type: ['string', 'null']
|
type: ['string', 'null']
|
||||||
end:
|
end:
|
||||||
type: ['string', 'null']
|
type: ['string', 'null']
|
||||||
increaseIndentPattern:
|
indent:
|
||||||
type: ['string', 'null']
|
type: 'object'
|
||||||
decreaseIndentPattern:
|
properties:
|
||||||
type: ['string', 'null']
|
increasePattern:
|
||||||
|
type: ['string', 'null']
|
||||||
|
decreasePattern:
|
||||||
|
type: ['string', 'null']
|
||||||
foldEndPattern:
|
foldEndPattern:
|
||||||
type: ['string', 'null']
|
type: ['string', 'null']
|
||||||
|
|
||||||
|
|||||||
+16
-10
@@ -249,7 +249,14 @@ class LanguageMode
|
|||||||
suggestedIndentForBufferRow: (bufferRow, options) ->
|
suggestedIndentForBufferRow: (bufferRow, options) ->
|
||||||
currentIndentLevel = @editor.indentationForBufferRow(bufferRow)
|
currentIndentLevel = @editor.indentationForBufferRow(bufferRow)
|
||||||
scopeDescriptor = @editor.scopeDescriptorForBufferPosition([bufferRow, 0])
|
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)
|
currentLine = @buffer.lineForRow(bufferRow)
|
||||||
if options?.skipBlankLines ? true
|
if options?.skipBlankLines ? true
|
||||||
@@ -263,7 +270,7 @@ class LanguageMode
|
|||||||
desiredIndentLevel = @editor.indentationForBufferRow(precedingRow)
|
desiredIndentLevel = @editor.indentationForBufferRow(precedingRow)
|
||||||
desiredIndentLevel += 1 if increaseIndentRegex.testSync(precedingLine) and not @editor.isBufferRowCommented(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)
|
desiredIndentLevel -= 1 if decreaseIndentRegex.testSync(currentLine)
|
||||||
|
|
||||||
Math.max(desiredIndentLevel, 0)
|
Math.max(desiredIndentLevel, 0)
|
||||||
@@ -299,8 +306,13 @@ class LanguageMode
|
|||||||
# bufferRow - The row {Number}
|
# bufferRow - The row {Number}
|
||||||
autoDecreaseIndentForBufferRow: (bufferRow) ->
|
autoDecreaseIndentForBufferRow: (bufferRow) ->
|
||||||
scopeDescriptor = @editor.scopeDescriptorForBufferPosition([bufferRow, 0])
|
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
|
return unless increaseIndentRegex and decreaseIndentRegex
|
||||||
|
|
||||||
line = @buffer.lineForRow(bufferRow)
|
line = @buffer.lineForRow(bufferRow)
|
||||||
@@ -321,11 +333,5 @@ class LanguageMode
|
|||||||
if pattern = atom.config.get(scopeDescriptor, property)
|
if pattern = atom.config.get(scopeDescriptor, property)
|
||||||
new OnigRegExp(pattern)
|
new OnigRegExp(pattern)
|
||||||
|
|
||||||
increaseIndentRegexForScopeDescriptor: (scopeDescriptor) ->
|
|
||||||
@getRegexForProperty(scopeDescriptor, 'editor.increaseIndentPattern')
|
|
||||||
|
|
||||||
decreaseIndentRegexForScopeDescriptor: (scopeDescriptor) ->
|
|
||||||
@getRegexForProperty(scopeDescriptor, 'editor.decreaseIndentPattern')
|
|
||||||
|
|
||||||
foldEndRegexForScopeDescriptor: (scopeDescriptor) ->
|
foldEndRegexForScopeDescriptor: (scopeDescriptor) ->
|
||||||
@getRegexForProperty(scopeDescriptor, 'editor.foldEndPattern')
|
@getRegexForProperty(scopeDescriptor, 'editor.foldEndPattern')
|
||||||
|
|||||||
@@ -25,6 +25,18 @@ class ScopedProperties
|
|||||||
delete properties.editor.commentEnd
|
delete properties.editor.commentEnd
|
||||||
Grim.deprecate("The 'editor.commentEnd' setting has been moved to 'editor.comment.end'. Please update `#{@path}`.")
|
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
|
@propertyDisposable = new CompositeDisposable
|
||||||
|
|
||||||
activate: ->
|
activate: ->
|
||||||
|
|||||||
Referência em uma Nova Issue
Bloquear um usuário