mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2024-09-21 16:08:24 +03:00
Merge single-trailing-newline into strip-trailing-whitepsace
single-trailing-newline functionality is now available as a config option on the strip-trailing-whitespace package
This commit is contained in:
parent
b937e0dfbd
commit
6d31946d31
@ -1 +0,0 @@
|
||||
module.exports = require 'single-trailing-newline/src/single-trailing-newline'
|
@ -1,39 +0,0 @@
|
||||
SingleTrailingNewline = require 'single-trailing-newline'
|
||||
RootView = require 'root-view'
|
||||
fs = require 'fs'
|
||||
|
||||
describe "SingleTrailingNewline", ->
|
||||
[rootView, editor, path] = []
|
||||
|
||||
beforeEach ->
|
||||
path = "/tmp/atom-whitespace.txt"
|
||||
fs.write(path, "")
|
||||
rootView = new RootView(path)
|
||||
|
||||
SingleTrailingNewline.activate(rootView)
|
||||
rootView.focus()
|
||||
editor = rootView.getActiveEditor()
|
||||
|
||||
afterEach ->
|
||||
fs.remove(path) if fs.exists(path)
|
||||
rootView.remove()
|
||||
|
||||
it "adds a trailing newline when there is no trailing newline", ->
|
||||
editor.insertText "foo"
|
||||
editor.save()
|
||||
expect(editor.getText()).toBe "foo\n"
|
||||
|
||||
it "removes extra trailing newlines and only keeps one", ->
|
||||
editor.insertText "foo\n\n\n\n"
|
||||
editor.save()
|
||||
expect(editor.getText()).toBe "foo\n"
|
||||
|
||||
it "leaves a buffer with a single trailing newline untouched", ->
|
||||
editor.insertText "foo\nbar\n"
|
||||
editor.save()
|
||||
expect(editor.getText()).toBe "foo\nbar\n"
|
||||
|
||||
it "leaves an empty buffer untouched", ->
|
||||
editor.insertText ""
|
||||
editor.save()
|
||||
expect(editor.getText()).toBe ""
|
@ -1,18 +0,0 @@
|
||||
module.exports =
|
||||
name: "Add a single trailing newline"
|
||||
|
||||
activate: (rootView) ->
|
||||
for buffer in rootView.project.getBuffers()
|
||||
@addSingleTrailingNewlineBeforeSave(buffer)
|
||||
|
||||
rootView.project.on 'new-buffer', (buffer) =>
|
||||
@addSingleTrailingNewlineBeforeSave(buffer)
|
||||
|
||||
addSingleTrailingNewlineBeforeSave: (buffer) ->
|
||||
buffer.on 'before-save', ->
|
||||
if buffer.getLastLine() is ''
|
||||
row = buffer.getLastRow()
|
||||
while row and buffer.lineForRow(--row) is ''
|
||||
buffer.deleteRow(row)
|
||||
else
|
||||
buffer.append('\n')
|
@ -33,3 +33,34 @@ describe "StripTrailingWhitespace", ->
|
||||
|
||||
editor.getBuffer().save()
|
||||
expect(editor.getText()).toBe 'Some text.\n'
|
||||
|
||||
describe "stripTrailingWhitespace.singleTrailingNewline config", ->
|
||||
[originalConfigValue] = []
|
||||
beforeEach ->
|
||||
originalConfigValue = config.get("stripTrailingWhitespace.singleTrailingNewline")
|
||||
config.set("stripTrailingWhitespace.singleTrailingNewline", true)
|
||||
config.update()
|
||||
|
||||
afterEach ->
|
||||
config.set("stripTrailingWhitespace.singleTrailingNewline", originalConfigValue)
|
||||
config.update()
|
||||
|
||||
it "adds a trailing newline when there is no trailing newline", ->
|
||||
editor.insertText "foo"
|
||||
editor.save()
|
||||
expect(editor.getText()).toBe "foo\n"
|
||||
|
||||
it "removes extra trailing newlines and only keeps one", ->
|
||||
editor.insertText "foo\n\n\n\n"
|
||||
editor.save()
|
||||
expect(editor.getText()).toBe "foo\n"
|
||||
|
||||
it "leaves a buffer with a single trailing newline untouched", ->
|
||||
editor.insertText "foo\nbar\n"
|
||||
editor.save()
|
||||
expect(editor.getText()).toBe "foo\nbar\n"
|
||||
|
||||
it "leaves an empty buffer untouched", ->
|
||||
editor.insertText ""
|
||||
editor.save()
|
||||
expect(editor.getText()).toBe ""
|
||||
|
@ -10,5 +10,13 @@ module.exports =
|
||||
|
||||
stripTrailingWhitespaceBeforeSave: (buffer) ->
|
||||
buffer.on 'before-save', ->
|
||||
buffer.scan /[ \t]+$/g, (match, range, { replace }) ->
|
||||
replace('')
|
||||
buffer.transact ->
|
||||
buffer.scan /[ \t]+$/g, (match, range, { replace }) ->
|
||||
replace('')
|
||||
if config.get("stripTrailingWhitespace.singleTrailingNewline")
|
||||
if buffer.getLastLine() is ''
|
||||
row = buffer.getLastRow()
|
||||
while row and buffer.lineForRow(--row) is ''
|
||||
buffer.deleteRow(row)
|
||||
else
|
||||
buffer.append('\n')
|
||||
|
Loading…
Reference in New Issue
Block a user