andrew-d-jackson / atom-clang-format

Format your C++ files with clang-format from inside atom
MIT License
24 stars 19 forks source link

Exception is thrown when attempting to format an empty file #57

Closed grenewode closed 5 years ago

grenewode commented 8 years ago

[Enter steps to reproduce below:]

  1. Create a new file with nothing in it.
  2. Save the file (i.e., trigger autoformat)

It appears that the clang-format command is returning an empty string instead of a valid JSON object, which causes the error.

Atom Version: 1.6.2 System: linux 4.6.3-1-ARCH Thrown From: clang-format package, v1.25.0

Stack Trace

Uncaught SyntaxError: Unexpected end of input

At /usr/share/atom/resources/app.asar/src/pane.js:896

SyntaxError: Unexpected end of input
    at Object.parse (native)
    at ClangFormat.module.exports.ClangFormat.getReturnedCursorPosition (/home/rmiller/.atom/packages/clang-format/lib/clang-format.coffee:113:19)
    at ClangFormat.module.exports.ClangFormat.format (/home/rmiller/.atom/packages/clang-format/lib/clang-format.coffee:78:28)
    at /home/rmiller/.atom/packages/clang-format/lib/clang-format.coffee:28:29
    at TextBuffer.module.exports.TextBuffer.transact (/usr/share/atom/resources/app.asar/node_modules/text-buffer/lib/text-buffer.js:811:18)
    at /home/rmiller/.atom/packages/clang-format/lib/clang-format.coffee:28:16
    at Function.module.exports.Emitter.simpleDispatch (/usr/share/atom/resources/app.asar/node_modules/event-kit/lib/emitter.js:25:14)
    at Emitter.module.exports.Emitter.emit (/usr/share/atom/resources/app.asar/node_modules/event-kit/lib/emitter.js:125:28)
    at TextBuffer.module.exports.TextBuffer.saveAs (/usr/share/atom/resources/app.asar/node_modules/text-buffer/lib/text-buffer.js:1051:20)
    at TextBuffer.module.exports.TextBuffer.save (/usr/share/atom/resources/app.asar/node_modules/text-buffer/lib/text-buffer.js:1043:19)
    at TextEditor.module.exports.TextEditor.save (/usr/share/atom/resources/app.asar/src/text-editor.js:629:26)
    at Pane.module.exports.Pane.saveItem (/usr/share/atom/resources/app.asar/src/pane.js:613:18)
    at Pane.module.exports.Pane.saveActiveItem (/usr/share/atom/resources/app.asar/src/pane.js:596:19)
    at Workspace.module.exports.Workspace.saveActivePaneItem (/usr/share/atom/resources/app.asar/src/workspace.js:673:35)
    at atom-workspace.commandRegistry.add.core:save (/usr/share/atom/resources/app.asar/src/register-default-commands.js:205:32)
    at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/usr/share/atom/resources/app.asar/src/command-registry.js:260:29)
    at /usr/share/atom/resources/app.asar/src/command-registry.js:3:61
    at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/usr/share/atom/resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:580:16)
    at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/usr/share/atom/resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:388:22)
    at WindowEventHandler.module.exports.WindowEventHandler.handleDocumentKeydown (/usr/share/atom/resources/app.asar/src/window-event-handler.js:97:36)
    at HTMLDocument.<anonymous> (/usr/share/atom/resources/app.asar/src/window-event-handler.js:3:61)

Commands

     -1:46.4.0 intentions:highlight (atom-text-editor.editor.is-focused)
  6x -1:46.2.0 editor:move-to-beginning-of-word (atom-text-editor.editor.is-focused)
  3x -1:43.7.0 core:backspace (atom-text-editor.editor.is-focused)
     -1:41.8.0 intentions:highlight (atom-text-editor.editor.is-focused)
     -1:41.8.0 editor:delete-to-beginning-of-word (atom-text-editor.editor.is-focused)
     -1:40 intentions:highlight (atom-text-editor.editor.is-focused)
     -1:39.9.0 editor:delete-to-beginning-of-word (atom-text-editor.editor.is-focused)
     -1:37.8.0 core:backspace (atom-text-editor.editor.is-focused)
     -1:36.5.0 intentions:highlight (atom-text-editor.editor.is-focused)
     -1:36.5.0 core:save (atom-text-editor.editor.is-focused)
     -0:11.4.0 tree-view:add-file (div.header.list-item)
     -0:06.7.0 editor:delete-to-beginning-of-word (atom-text-editor.editor.mini.is-focused)
  2x -0:05.4.0 core:backspace (atom-text-editor.editor.mini.is-focused)
     -0:03.9.0 core:confirm (atom-text-editor.editor.mini.is-focused)
     -0:01.8.0 intentions:highlight (atom-text-editor.editor.is-focused)
     -0:01.6.0 core:save (atom-text-editor.editor.is-focused)

Config

{
  "core": {
    "autoHideMenuBar": true,
    "disabledPackages": [
      "symbols-view",
      "atom-ctags",
      "linter-jshint",
      "indent-guide-improved",
      "minimap",
      "minimap-pigments",
      "coffee-autocompile",
      "linter-pylint",
      "language-python",
      "atom-beautify",
      "you-complete-me"
    ],
    "ignoredNames": [
      "*.meta"
    ],
    "themes": [
      "one-outlander-ui",
      "one-dark-vivid-syntax"
    ]
  },
  "clang-format": {
    "executable": "clang-format"
  }
}

Installed Packages

# User
MagicPython, v0.5.13
aligner, v0.22.0
aligner-python, v1.0.1
aligner-scss, v1.1.0
atom-gdb, v0.4.0
atom-yeoman, v0.3.15
autocomplete-clang, v0.9.4
autocomplete-cmake, v0.3.1
autocomplete-glsl, v0.2.3
autocomplete-modules, v1.5.2
autocomplete-python, v1.8.2
autocomplete-underdash, v1.1.0
browser-plus, v0.0.67
build, v0.65.0
build-cargo, v0.15.0
build-gradle, v0.6.0
build-processing, v0.1.2
build-tools-make, v0.2.1
busy, v0.5.0
clang-format, v1.25.0
color-picker, v2.2.2
column-select, v0.2.0
ctags-status, v1.3.4
docblockr, v0.7.3
emmet, v2.4.3
file-icons, v1.7.17
formatter, v2.12.3
formatter-coffeescript, v0.1.1
formatter-jsbeautify, v1.0.2
formatter-tidy, v1.0.1
gradle-ci, v1.1.4
gradle-manager, vundefined
hyperclick, v0.0.37
imdone-atom, v1.3.29
indent-detective, v0.1.0
ink, v0.4.4
intentions, v1.0.5
jquery-snippets, v11.0.0
json-schema, v0.1.15
julia-client, v0.4.7
language-cmake, v0.2.0
language-conky, v0.2.0
language-cpp14, v0.6.1
language-dot, v1.6.0
language-doxygen, v0.2.1
language-fish-shell, v1.0.4
language-gitignore, v0.2.0
language-glsl, v2.0.1
language-gradle, v0.0.3
language-groovy, v0.6.0
language-haskell, v1.7.17
language-javascript-better, v1.7.1
language-julia, v0.6.0
language-latex, v0.6.1
language-lua, v0.9.4
language-nim, v0.2.2
language-plantuml, v0.2.0
language-python-django-templates, v0.1.0
language-rust, v0.4.6
language-scala, v1.1.6
language-scala-plus, v1.2.2
language-svg, v0.9.0
language-todotxt, v0.6.1
language-x86asm, v0.8.0
latex-completions, v0.3.1
latexer, v0.3.0
linter, v1.11.14
linter-annotations, v1.0.1
linter-clang, v3.4.4
linter-coffeescript, v1.0.0
linter-javac, v1.9.4
linter-lua, v1.0.2
linter-mixed-indent, v1.1.0
linter-pep8, v1.3.0
linter-perl-check-syntax, v0.3.0
linter-processing, v2.2.2
linter-python, v2.1.7
linter-rust, v0.4.6
linter-sass-lint, v1.6.1
linter-scalac, v1.4.2
markdown-preview-plus, v2.4.0
merge-conflicts, v1.4.4
nim, v0.3.6
one-dark-vivid-syntax, v1.1.2
one-outlander-ui, v0.3.1
pdf-view, v0.50.0
processing-autocomplete, v0.2.0
processing-language, v0.2.0
python-autopep8, v0.1.3
python-tools, v0.6.8
racer, v0.20.0
scala-format, v0.1.8
spell-check, v0.67.1
svg-preview, v0.7.4

# Dev
No dev packages
andrew-d-jackson commented 5 years ago

i cannot reproduce this anymore so im going to assume its fixed and close this issue