Giter Site home page Giter Site logo

vknabel / vscode-swiftformat Goto Github PK

View Code? Open in Web Editor NEW
35.0 35.0 6.0 344 KB

SwiftFormat for VS Code

Home Page: https://marketplace.visualstudio.com/items?itemName=vknabel.vscode-swiftformat

License: MIT License

TypeScript 100.00%
formatter hacktoberfest preffifier swift swiftformat vscode vscode-extension

vscode-swiftformat's Introduction

vscode-swiftformat's People

Contributors

hf02 avatar mahdibm avatar orta avatar vknabel avatar yonaskolb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

vscode-swiftformat's Issues

Report ENOBUFS spawnSync /usr/bin/env ENOBUFS

Error: spawnSync /usr/bin/env ENOBUFS at Object.spawnSync (node:internal/child_process:1111:20) at spawnSync (node:child_process:834:24) at Object.execFileSync (node:child_process:880:15) at Object.func [as execFileSync] (node:electron/js2c/asar_bundle:5:1812) at format (/Users/quseasaif/.vscode/extensions/vknabel.vscode-swiftformat-1.6.2/out/src/SwiftFormatEditProvider.js:54:40) at SwiftFormatEditProvider.provideDocumentFormattingEdits (/Users/quseasaif/.vscode/extensions/vknabel.vscode-swiftformat-1.6.2/out/src/SwiftFormatEditProvider.js:85:16) at $.provideDocumentFormattingEdits (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:98:39761) at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:98:61932 at le.s (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:98:56737) at le.$provideDocumentFormattingEdits (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:98:61919) at l.N (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:106:11239) at l.M (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:106:10957) at l.H (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:106:10005) at l.G (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:106:9022) at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:106:7810 at f.invoke (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:145) at g.deliver (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:2029) at d.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:1667) at p.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:72:14861) at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:122:15815 at f.invoke (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:145) at g.deliver (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:2029) at d.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:1667) at p.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:72:14861) at MessagePortMain.<anonymous> (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:122:13941) at MessagePortMain.emit (node:events:526:28) at Object.MessagePortMain._internalPort.emit (node:electron/js2c/utility_init:5:364)

What is Package.swift

Your instructions call out a file "Package.swift" Which app owns this file, or where are common locations to find it?

Linux Support

SwiftFormat now works on linux but vscode-swiftformat still says its not supported, I guess this is just a question of removing the restriction now?

Report Command failed: /usr/local/bin/swift-format stdin --stdinpath /Users/quseasaif/Documents/Code/xcode/Little Lemon/Little Lemon/Menu.swift --indent 2Error: Unknown option '--stdinpath'Usage: swift-format format [--in-place] [--configuration <configuration>] [--assume-filename <assume-filename>] [--recursive] [--ignore-unparsable-files] [--parallel] [--color-diagnostics] [--no-color-diagnostics] [<paths> ...] See 'swift-format format --help' for more information.

`Error: Command failed: /usr/local/bin/swift-format stdin --stdinpath /Users/quseasaif/Documents/Code/xcode/Little Lemon/Little Lemon/Menu.swift --indent 2
Error: Unknown option '--stdinpath'
Usage: swift-format format [--in-place] [--configuration ] [--assume-filename ] [--recursive] [--ignore-unparsable-files] [--parallel] [--color-diagnostics] [--no-color-diagnostics] [ ...]
See 'swift-format format --help' for more information.

at checkExecSyncError (node:child_process:945:11)
at execFileSync (node:child_process:981:15)
at func (node:electron/js2c/asar_bundle:2:1869)
at execShellSync (/Users/quseasaif/.vscode/extensions/vknabel.vscode-swiftformat-1.6.7/out/src/execShell.js:15:49)
at format (/Users/quseasaif/.vscode/extensions/vknabel.vscode-swiftformat-1.6.7/out/src/SwiftFormatEditProvider.js:56:59)
at SwiftFormatEditProvider.provideDocumentFormattingEdits (/Users/quseasaif/.vscode/extensions/vknabel.vscode-swiftformat-1.6.7/out/src/SwiftFormatEditProvider.js:89:16)
at O.provideDocumentFormattingEdits (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:127:45401)
at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:127:68987
at be.s (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:127:63736)
at be.$provideDocumentFormattingEdits (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:127:68976)
at i.S (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:134:10827)
at i.Q (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:134:10593)
at i.M (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:134:9645)
at i.L (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:134:8762)
at s.value (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:134:7565)
at c.z (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:80:1902)
at c.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:80:2119)
at m.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:96:14010)
at s.value (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:153:7902)
at c.z (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:80:1902)
at c.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:80:2119)
at m.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:96:14010)
at MessagePortMain.<anonymous> (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:153:6182)
at MessagePortMain.emit (node:events:513:28)
at Object.MessagePortMain._internalPort.emit (node:electron/js2c/utility_init:2:367)`

SwiftFormat hanging for long time

Sometimes when saving a file I get the following dialog appearing for at least a minute. While this dialog is displayed most operations in VSCode do not work.

Screenshot 2023-12-14 at 17 18 50

The only options I have set are

    "swiftformat.path": "/Users/adamfowler/.mint/bin/swiftformat",
    "swiftformat.onlyEnableWithConfig": true,

Report ENOTDIR spawnSync /usr/local/bin/swiftformat ENOTDIR

Error: spawnSync /usr/local/bin/swiftformat ENOTDIR at Object.spawnSync (internal/child_process.js:982:20) at spawnSync (child_process.js:606:24) at Object.execFileSync (child_process.js:634:13) at Object.module.(anonymous function) [as execFileSync] (ELECTRON_ASAR.js:160:31) at format (/home/amalendu/.vscode/extensions/vknabel.vscode-swiftformat-1.3.3/out/src/SwiftFormatEditProvider.js:46:14) at SwiftFormatEditProvider.provideDocumentRangeFormattingEdits (/home/amalendu/.vscode/extensions/vknabel.vscode-swiftformat-1.3.3/out/src/SwiftFormatEditProvider.js:66:16) at define.provideDocumentRangeFormattingEdits.o.asPromise (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:555:585) at t.asPromise.Promise (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:55:720) at new Promise (<anonymous>) at Object.t.asPromise (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:55:692) at I.provideDocumentRangeFormattingEdits (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:555:556) at define.$provideDocumentRangeFormattingEdits._withAdapter.e (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:570:829) at W._withAdapter (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:565:723) at W.$provideDocumentRangeFormattingEdits (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:570:807) at d._doInvokeHandler (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:623:396) at d._invokeHandler (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:623:88) at d._receiveRequest (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:621:730) at d._receiveOneMessage (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:620:605) at define.constructor._protocol.onMessage.e (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:618:791) at u.fire (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:50:207) at v.fire (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:186:579) at i.constructor.e.onMessage.e (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:783:484) at u.fire (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:50:207) at v.fire (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:186:579) at x._receiveMessage (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:191:17) at define.constructor._socketDisposables.push._socketReader.onMessage.e (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:188:116) at u.fire (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:50:207) at f.acceptChunk (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:184:17) at define.constructor._register._socket.onData.e (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:183:372) at Socket.t (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:192:491) at Socket.emit (events.js:182:13) at addChunk (_stream_readable.js:283:12) at readableAddChunk (_stream_readable.js:264:11) at Socket.Readable.push (_stream_readable.js:219:10) at Pipe.onStreamRead [as onread] (internal/stream_base_commons.js:94:17)

Better handling of indentation

Currently this extension reads the editor setting for the indentation and passes it to swiftformat.

This behaviour might make sense if no indentation rules were provided in the config and if the user stays to vscode's defaults. But as it belongs to the responsibility of swiftformat, the current behaviour is misleading wrong.

=> The extension should tell VS Code which indentation rules it should follow by reading the provided config (if there is any).

How is swiftformat.options configured?

image

It doesn't seem to work that way.
So can you add a configuration list like this one?
Thanks big guy!

好像不是这样用的。
那么可以加一个像这样的配置列表吗?
谢谢大佬!

Report Cannot read property 'uri' of undefined

TypeError: Cannot read property 'uri' of undefined at userDefinedFormatOptionsForDocument (/Users/apple/.vscode/extensions/vknabel.vscode-swiftformat-1.3.0/out/src/SwiftFormatEditProvider.js:15:36) at format (/Users/apple/.vscode/extensions/vknabel.vscode-swiftformat-1.3.0/out/src/SwiftFormatEditProvider.js:27:33) at SwiftFormatEditProvider.provideDocumentFormattingEdits (/Users/apple/.vscode/extensions/vknabel.vscode-swiftformat-1.3.0/out/src/SwiftFormatEditProvider.js:65:16) at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:543:107 at t.asPromise (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:50:385) at new Promise (<anonymous>) at Object.t.asPromise (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:50:353) at e.provideDocumentFormattingEdits (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:543:67) at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:558:542 at e._withAdapter (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:553:292) at e.$provideDocumentFormattingEdits (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:558:504) at t._doInvokeHandler (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:644:118) at t._invokeHandler (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:643:744) at t._receiveRequest (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:642:256) at t._receiveOneMessage (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:641:155) at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:638:960 at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:38:994 at e.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:44:113) at a (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:170:213) at Socket.f._socketDataListener (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:170:434) at Socket.emit (events.js:182:13) at addChunk (_stream_readable.js:279:12) at readableAddChunk (_stream_readable.js:264:11) at Socket.Readable.push (_stream_readable.js:219:10) at Pipe.onread (net.js:636:20)

Not working when swift project is inside /src

So I have this project structure:

- tests
- deployment_thingies
- src
    - Package.swift
    - main.swift
    - .swiftforat

This plugin does not work (and gives no error too). If I open only src in VS Code, then it works as expected.

More info:
I'm using swiftFormat pas package dependancy

How to use

So does this work automatically? Does it happen when I save? If I type swiftformat . into the terminal it works but isn't that how it would behave without this extension?

Option to load .swiftformat file for current project?

Thanks for this fantastic extension!

It currently looks like .swiftformat file in a project is ignored when formatting options are applied. Is there a way to make this extension to load this file and apply those options for formatting?

Report ENOTDIR spawnSync /usr/bin/env/swiftformat ENOTDIR

Error: spawnSync /usr/bin/env/swiftformat ENOTDIR at Object.spawnSync (node:internal/child_process:1111:20) at spawnSync (node:child_process:834:24) at Object.execFileSync (node:child_process:880:15) at Object.func [as execFileSync] (node:electron/js2c/asar_bundle:5:1812) at format (/Users/quseasaif/.vscode/extensions/vknabel.vscode-swiftformat-1.6.2/out/src/SwiftFormatEditProvider.js:54:40) at SwiftFormatEditProvider.provideDocumentFormattingEdits (/Users/quseasaif/.vscode/extensions/vknabel.vscode-swiftformat-1.6.2/out/src/SwiftFormatEditProvider.js:85:16) at $.provideDocumentFormattingEdits (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:98:39761) at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:98:61932 at le.s (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:98:56737) at le.$provideDocumentFormattingEdits (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:98:61919) at l.N (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:106:11239) at l.M (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:106:10957) at l.H (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:106:10005) at l.G (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:106:9022) at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:106:7810 at f.invoke (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:145) at g.deliver (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:2029) at d.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:1667) at p.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:72:14861) at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:122:15815 at f.invoke (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:145) at g.deliver (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:2029) at d.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:1667) at p.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:72:14861) at MessagePortMain.<anonymous> (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:122:13941) at MessagePortMain.emit (node:events:526:28) at Object.MessagePortMain._internalPort.emit (node:electron/js2c/utility_init:5:364)

Add configuration option to only run swift format when a .swiftformat file exists

I'd like to enable this extension universally, but it means if I work on a project which isn't using swift format it applies the default formatting to it when I'd rather it did nothing. The existence of a .swiftformat file is a pretty good indicator that swift format is being used.

Can we add a configuration option to only run swift format is a .swiftformat file exists in the base of the project

Report EPIPE spawnSync /usr/bin/env EPIPE

Error: spawnSync /usr/bin/env EPIPE at Object.spawnSync (node:internal/child_process:1111:20) at spawnSync (node:child_process:834:24) at Object.execFileSync (node:child_process:880:15) at Object.func [as execFileSync] (node:electron/js2c/asar_bundle:5:1812) at format (/Users/emile/.vscode/extensions/vknabel.vscode-swiftformat-1.6.2/out/src/SwiftFormatEditProvider.js:54:40) at SwiftFormatEditProvider.provideDocumentFormattingEdits (/Users/emile/.vscode/extensions/vknabel.vscode-swiftformat-1.6.2/out/src/SwiftFormatEditProvider.js:85:16) at B.provideDocumentFormattingEdits (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:100:46628) at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:100:68809 at ce.s (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:100:63614) at ce.$provideDocumentFormattingEdits (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:100:68796) at c.N (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:108:11655) at c.M (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:108:11373) at c.H (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:108:10415) at c.G (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:108:9432) at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:108:8220 at E.invoke (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:145) at h.deliver (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:2121) at n.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:1729) at p.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:72:14916) at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:124:16654 at E.invoke (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:145) at h.deliver (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:2121) at n.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:63:1729) at p.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:72:14916) at MessagePortMain.<anonymous> (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/api/node/extensionHostProcess.js:124:14780) at MessagePortMain.emit (node:events:526:28) at Object.MessagePortMain._internalPort.emit (node:electron/js2c/utility_init:5:364)

Headers with variables don't work

I have a comment header defined in my .swiftformat file which includes the {created} variable. The swift format extension fails to run while this is included. It returns with the error

Failed to apply {created} template in file header as file info is unavailable

Add this to your .swiftformat to replicate

--header "// Created {created}"

add windows suport

I have swift 5.9 and swiftformat 0.52.7 installed but when I use the format option in VS Code it deletes all source code

image

image

image

Report ENOENT spawnSync /usr/local/bin/swiftformat ENOENT

Error: spawnSync /usr/local/bin/swiftformat ENOENTat _errnoException (util.js:1024:11)at spawnSync (child_process.js:591:20)at Object.execFileSync (child_process.js:628:13)at Object.module.(anonymous function) [as execFileSync] (ELECTRON_ASAR.js:166:20)at format (/Users/admin/.vscode/extensions/vknabel.vscode-swiftformat-1.2.1/out/src/SwiftFormatEditProvider.js:23:14)at SwiftFormatEditProvider.provideDocumentFormattingEdits (/Users/admin/.vscode/extensions/vknabel.vscode-swiftformat-1.2.1/out/src/SwiftFormatEditProvider.js:51:16)at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:557:303at t.asThenable (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:141:941)at new Promise (<anonymous>)at Object.t.asThenable (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:141:909)at e.provideDocumentFormattingEdits (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:557:262)at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:572:705at e._withAdapter (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:567:513)at e.$provideDocumentFormattingEdits (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:572:667)at t._doInvokeHandler (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:658:837)at t._invokeHandler (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:658:509)at t._receiveRequest (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:657:60)at t._receiveOneMessage (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:656:59)at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:653:895at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:130:793at e.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:133:218)at a (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:186:147)at Socket.n._socketDataListener (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:186:368)at emitOne (events.js:116:13)at Socket.emit (events.js:211:7)at addChunk (_stream_readable.js:263:12)at readableAddChunk (_stream_readable.js:250:11)at Socket.Readable.push (_stream_readable.js:208:10)at Pipe.onread (net.js:594:20)

SwiftFormat failed. error: File not found

OS: Windows 10
SwiftFormat: Latest
vscode-swiftformat: Latest

Error message appears, when trying to format a file:

SwiftFormat failed. error: File not found at C:/Users/foo/AppData/Local/Programs/Microsoft VS Code/c:/prj/Foo/Sources/Foo/main.swift.

For some reason extension uses the wrong path of the file.

The correct path of the file is C:/prj/Foo/Sources/Foo/main.swift

But extension tries to find it at C:/Users/foo/AppData/Local/Programs/Microsoft VS Code/c:/prj/Foo/Sources/Foo/main.swift

Report Command failed: /usr/local/bin/swiftformat --indent 4dyld: Library not loaded: @rpath/libswiftCore.dylib Referenced from: /usr/local/bin/swiftformat Reason: image not found

`Error: Command failed: /usr/local/bin/swiftformat --indent 4
dyld: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: /usr/local/bin/swiftformat
Reason: image not found

at checkExecSyncError (child_process.js:615:11)
at Object.execFileSync (child_process.js:633:13)
at Object.module.(anonymous function) [as execFileSync] (ELECTRON_ASAR.js:166:20)
at format (/Users/juansebestia/.vscode/extensions/vknabel.vscode-swiftformat-1.3.2/out/src/SwiftFormatEditProvider.js:39:14)
at SwiftFormatEditProvider.provideDocumentFormattingEdits (/Users/juansebestia/.vscode/extensions/vknabel.vscode-swiftformat-1.3.2/out/src/SwiftFormatEditProvider.js:67:16)
at define.provideDocumentFormattingEdits.a.asPromise (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:578:40)
at t.asPromise.Promise (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:53:320)
at new Promise (<anonymous>)
at Object.t.asPromise (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:53:292)
at D.provideDocumentFormattingEdits (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:578:11)
at define.$provideDocumentFormattingEdits._withAdapter.e (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:593:633)
at j._withAdapter (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:588:126)
at j.$provideDocumentFormattingEdits (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:593:611)
at d._doInvokeHandler (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:644:1006)
at d._invokeHandler (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:644:698)
at d._receiveRequest (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:643:293)
at d._receiveOneMessage (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:642:141)
at define.constructor._protocol.onMessage.e (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:640:400)
at u.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:47:720)
at a (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:176:766)
at e (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:176:812)
at u.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:47:720)
at n.constructor.e.onMessage.e (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:748:721)
at u.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:47:720)
at a (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:176:766)
at e (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:176:812)
at u.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:47:720)
at y._receiveMessage (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:185:670)
at define.constructor._socketDisposables.push._socketReader.onMessage.e (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:182:981)
at u.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:47:720)
at f.acceptChunk (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:179:532)
at define.constructor._register._socket.onData.e (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:178:869)
at Socket.t (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:187:141)
at Socket.emit (events.js:182:13)
at addChunk (_stream_readable.js:279:12)
at readableAddChunk (_stream_readable.js:264:11)
at Socket.Readable.push (_stream_readable.js:219:10)
at Pipe.onread (net.js:636:20)`

Report Cannot read property 'uri' of undefined

TypeError: Cannot read property 'uri' of undefinedat Object.swiftFormatPath (/Users/cs/.vscode/extensions/vknabel.vscode-swiftformat-1.2.1/out/src/Current.js:113:58)at format (/Users/cs/.vscode/extensions/vknabel.vscode-swiftformat-1.2.1/out/src/SwiftFormatEditProvider.js:23:52)at SwiftFormatEditProvider.provideDocumentFormattingEdits (/Users/cs/.vscode/extensions/vknabel.vscode-swiftformat-1.2.1/out/src/SwiftFormatEditProvider.js:51:16)at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:557:303at t.asThenable (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:141:941)at new Promise (<anonymous>)at Object.t.asThenable (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:141:909)at e.provideDocumentFormattingEdits (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:557:262)at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:572:705at e._withAdapter (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:567:513)at e.$provideDocumentFormattingEdits (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:572:667)at t._doInvokeHandler (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:658:837)at t._invokeHandler (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:658:509)at t._receiveRequest (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:657:60)at t._receiveOneMessage (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:656:59)at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:653:895at /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:130:793at e.fire (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:133:218)at a (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:186:147)at Socket.n._socketDataListener (/Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/node/extensionHostProcess.js:186:368)at emitOne (events.js:116:13)at Socket.emit (events.js:211:7)at addChunk (_stream_readable.js:263:12)at readableAddChunk (_stream_readable.js:250:11)at Socket.Readable.push (_stream_readable.js:208:10)at Pipe.onread (net.js:594:20)

Better Format Selection

When you do "Format Selection" in VSCode, it'll format the selection out of context of the file, which can make it look weird because it won't properly take care of indentation etc...

It should instead take the whole file context into account, but only modify the selected lines.

Steps to reproduce

1:

Screenshot 2023-08-11 at 2 32 17 AM

2:

Screenshot 2023-08-11 at 2 32 24 AM

3:

Screenshot 2023-08-11 at 2 32 34 AM

4:

Screenshot 2023-08-11 at 2 32 48 AM

As you can see, in 4 indentation of the function is broken compared to the parent struct. There is also a weird extra space below the function after the indentation, not sure why.

Usage?

When working on team projects you might want to keep your own code-style clean, but don't force it on others.
Without a feature like this you always need to format the whole file instead of just the few lines you wrote.

Report ENOTDIR spawnSync /usr/local/bin/swiftformat ENOTDIR

Error: spawnSync /usr/local/bin/swiftformat ENOTDIR at Object.spawnSync (internal/child_process.js:982:20) at spawnSync (child_process.js:606:24) at Object.execFileSync (child_process.js:634:13) at Object.module.(anonymous function) [as execFileSync] (ELECTRON_ASAR.js:160:31) at format (/home/amalendu/.vscode/extensions/vknabel.vscode-swiftformat-1.3.3/out/src/SwiftFormatEditProvider.js:46:14) at SwiftFormatEditProvider.provideDocumentFormattingEdits (/home/amalendu/.vscode/extensions/vknabel.vscode-swiftformat-1.3.3/out/src/SwiftFormatEditProvider.js:74:16) at define.provideDocumentFormattingEdits.o.asPromise (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:555:286) at t.asPromise.Promise (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:55:720) at new Promise (<anonymous>) at Object.t.asPromise (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:55:692) at P.provideDocumentFormattingEdits (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:555:257) at define.$provideDocumentFormattingEdits._withAdapter.e (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:570:430) at W._withAdapter (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:565:723) at W.$provideDocumentFormattingEdits (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:570:408) at d._doInvokeHandler (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:623:396) at d._invokeHandler (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:623:88) at d._receiveRequest (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:621:730) at d._receiveOneMessage (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:620:605) at define.constructor._protocol.onMessage.e (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:618:791) at u.fire (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:50:207) at v.fire (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:186:579) at i.constructor.e.onMessage.e (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:783:484) at u.fire (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:50:207) at v.fire (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:186:579) at x._receiveMessage (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:191:17) at define.constructor._socketDisposables.push._socketReader.onMessage.e (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:188:116) at u.fire (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:50:207) at f.acceptChunk (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:184:17) at define.constructor._register._socket.onData.e (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:183:372) at Socket.t (/usr/share/code/resources/app/out/vs/workbench/services/extensions/node/extensionHostProcess.js:192:491) at Socket.emit (events.js:182:13) at addChunk (_stream_readable.js:283:12) at readableAddChunk (_stream_readable.js:264:11) at Socket.Readable.push (_stream_readable.js:219:10) at Pipe.onStreamRead [as onread] (internal/stream_base_commons.js:94:17)

End of file newline is removed

I have a simple example file demo.swift:

import Foundation

struct Demo {
    init() {
        // Bla
    }
}

It is important to notice that the file does end with a newline:

$ od -c demo.swift
0000000    i   m   p   o   r   t       F   o   u   n   d   a   t   i   o
0000020    n  \n  \n   s   t   r   u   c   t       D   e   m   o       {
0000040   \n                   i   n   i   t   (   )       {  \n
0000060                            /   /       B   l   a  \n
0000100        }  \n   }  \n
0000105

When I run swiftformat using the command line:

$ swiftformat --verbose --config ~/.config/swiftformat/config demo.swift
Running SwiftFormat...
Formatting demo.swift
-- no changes (cached)

SwiftFormat completed in 0.01s.
0/1 files formatted.

As you can see swiftformat is fine with this demo struct.

The next step is then to run this within VSCode. I have configured the exact same config file and would expect the same output. It is not, it removes the last line.

When I save it I get the following content with od:

$ od -c demo.swift
0000000    i   m   p   o   r   t       F   o   u   n   d   a   t   i   o
0000020    n  \n  \n   s   t   r   u   c   t       D   e   m   o       {
0000040   \n                   i   n   i   t   (   )       {  \n
0000060                            /   /       B   l   a  \n
0000100        }  \n   }
0000104

That new line should not be removed.

Not working in SPM project

The plugin is not working for me on an SPM project.

I think the issue is that the plugin is trying to find swiftlint instead of swiftformat (see https://github.com/vknabel/vscode-swiftformat/blob/860f358d1237c765c962cc95fa32dd14a95b20b2/src/Current.ts#L79C38-L79C47)

My Package.swift:


import PackageDescription

let package = Package(
	name: "...",
	platforms: [
		...
	],
	dependencies: [
		.package(url: "https://github.com/nicklockwood/SwiftFormat", from: "0.50.4"),
		...
	],
	targets: [
		...
	]
)

Extension settings:

{
    "swiftformat.onlyEnableOnSwiftPMProjects": true,
    "swiftformat.onlyEnableWithConfig": true
}

I do have a .swiftformat configuration file in the root directory, and the following command works from terminal
swift package plugin --allow-writing-to-package-directory swiftformat

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.