code-formatter 0.0.1 → 0.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/code_formatter.rb +1 -2
- data/lib/code_formatter/cli.rb +22 -0
- data/lib/{src → code_formatter}/configuration.rb +2 -10
- data/lib/code_formatter/formatters/formatter.rb +14 -0
- data/lib/code_formatter/formatters/swift_format_formatter.rb +61 -0
- data/lib/{src → code_formatter}/initializer.rb +0 -0
- data/lib/{src → code_formatter}/resources/sample_config.config +0 -0
- data/lib/code_formatter/resources/swiftformat_rules.yml +46 -0
- data/lib/code_formatter/version.rb +3 -0
- metadata +35 -17
- data/lib/src/cli.rb +0 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8a2186a81c09f3674da9c86a60cc548f3728776e23b9900f587dad55a3c68cf2
|
4
|
+
data.tar.gz: 0abdf79e3bdd980077a69a6bbd6469bb30f1fe0bb914fe3918d71a0eb93822b2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4a732d54f59a621462f90cd0df8598621579837d810598f6bcba94d369722ae51bf8b84418799307bf108c706af9e784fc8999a1faa91db5d2ab6775637141ae
|
7
|
+
data.tar.gz: d83247af31e3f4a254c801e44ae11381ebf33c8e479159d672187ebe08f1a325a0e65dcb40760c9687825539c0bc51b2652083da58f21df090918d1dab97bc3c
|
data/lib/code_formatter.rb
CHANGED
@@ -1,2 +1 @@
|
|
1
|
-
require_relative '
|
2
|
-
require_relative 'src/initializer'
|
1
|
+
require_relative 'code_formatter/cli'
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require_relative 'initializer'
|
2
|
+
require_relative 'configuration'
|
3
|
+
require_relative 'formatters/swift_format_formatter'
|
4
|
+
require 'thor'
|
5
|
+
|
6
|
+
module CodeFormatter
|
7
|
+
class CLI < Thor
|
8
|
+
desc 'init', 'initialize config'
|
9
|
+
def init
|
10
|
+
Initializer.init
|
11
|
+
end
|
12
|
+
|
13
|
+
desc 'format', 'format code with configuration'
|
14
|
+
option :config, default: Initializer.initialized_config, aliases: '-c', type: :string, desc: 'configuration file'
|
15
|
+
def format
|
16
|
+
config_file = options[:config]
|
17
|
+
config = Configuration.load_from(config_file)
|
18
|
+
formatters = [SwiftFormatFormatter.new(config)]
|
19
|
+
formatters.each(&:format)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -4,8 +4,7 @@ module CodeFormatter
|
|
4
4
|
attr_accessor :excluded_files
|
5
5
|
attr_accessor :included_dirs
|
6
6
|
attr_accessor :excluded_dirs
|
7
|
-
|
8
|
-
attr_reader :source_file
|
7
|
+
attr_accessor :source_file
|
9
8
|
|
10
9
|
def initialize
|
11
10
|
self.included_files = []
|
@@ -24,19 +23,12 @@ module CodeFormatter
|
|
24
23
|
begin
|
25
24
|
config = eval(File.read(file), binding, 'config loading problem')
|
26
25
|
config.source_file = file
|
27
|
-
return config if config.is_a?
|
26
|
+
return config if config.is_a? Configuration
|
28
27
|
|
29
28
|
warn "[#{file}] isn't a CodeFormatter::Configuration, but #{config.class}."
|
30
29
|
rescue SyntaxError, StandardError => e
|
31
30
|
warn "Invalid configuration in [#{file}]: #{e}"
|
32
31
|
end
|
33
32
|
end
|
34
|
-
|
35
|
-
private
|
36
|
-
|
37
|
-
def source_file=(file)
|
38
|
-
return unless file || File.file?(file)
|
39
|
-
@source_file = file
|
40
|
-
end
|
41
33
|
end
|
42
34
|
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require_relative 'formatter'
|
3
|
+
|
4
|
+
module CodeFormatter
|
5
|
+
class SwiftFormatFormatter < Formatter
|
6
|
+
def format
|
7
|
+
unless exist? 'git'
|
8
|
+
warn 'warning: failed to find git command'
|
9
|
+
return
|
10
|
+
end
|
11
|
+
|
12
|
+
unless exist? 'swiftformat'
|
13
|
+
warn "warning: [swiftformat] not found (to install it run 'brew install swiftformat')"
|
14
|
+
return
|
15
|
+
end
|
16
|
+
|
17
|
+
files = files_to_format
|
18
|
+
if files.empty?
|
19
|
+
puts 'everything is up-to-date'
|
20
|
+
else
|
21
|
+
puts "going to format files:\n#{files.join('\n')}"
|
22
|
+
format_files(files)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def files_to_format
|
29
|
+
filter = "'*.swift'"
|
30
|
+
modified_and_untracked = `git ls-files --others --exclude-standard -m -- #{filter}`
|
31
|
+
staged = `git diff --cached --name-only -- #{filter}`
|
32
|
+
all_files = modified_and_untracked + staged
|
33
|
+
all_files.lines.uniq.map { |f| File.expand_path f.strip }.select { |f| File.exist? f }
|
34
|
+
end
|
35
|
+
|
36
|
+
def exist?(command)
|
37
|
+
!`which #{command}`.empty?
|
38
|
+
end
|
39
|
+
|
40
|
+
def format_files(files)
|
41
|
+
disabled = disabled_rules.join(',')
|
42
|
+
enabled = enabled_rules.join(',')
|
43
|
+
`swiftformat #{files.join(' ')} --disable #{disabled} --enable #{enabled}`
|
44
|
+
end
|
45
|
+
|
46
|
+
# @return [[String]] enabled rules
|
47
|
+
def enabled_rules
|
48
|
+
rules_config['enabled_rules'].map(&:strip)
|
49
|
+
end
|
50
|
+
|
51
|
+
# @return [[String]] disabled rules
|
52
|
+
def disabled_rules
|
53
|
+
rules_config['disabled_rules'].map(&:strip)
|
54
|
+
end
|
55
|
+
|
56
|
+
def rules_config
|
57
|
+
rules_file = File.expand_path('../../resources/swiftformat_rules.yml', __FILE__)
|
58
|
+
YAML.load_file(rules_file)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
File without changes
|
File without changes
|
@@ -0,0 +1,46 @@
|
|
1
|
+
enabled_rules:
|
2
|
+
- blankLinesAtEndOfScope
|
3
|
+
- blankLinesBetweenScopes
|
4
|
+
- braces
|
5
|
+
- consecutiveBlankLines
|
6
|
+
- consecutiveSpaces
|
7
|
+
- elseOnSameLine
|
8
|
+
- fileHeader
|
9
|
+
- hoistPatternLet
|
10
|
+
- indent
|
11
|
+
- linebreakAtEndOfFile
|
12
|
+
- linebreaks
|
13
|
+
- numberFormatting
|
14
|
+
- ranges
|
15
|
+
- semicolons
|
16
|
+
- spaceAroundBraces
|
17
|
+
- spaceAroundBrackets
|
18
|
+
- spaceAroundComments
|
19
|
+
- spaceAroundGenerics
|
20
|
+
- spaceAroundOperators
|
21
|
+
- spaceAroundParens
|
22
|
+
- spaceInsideBraces
|
23
|
+
- spaceInsideBrackets
|
24
|
+
- spaceInsideComments
|
25
|
+
- spaceInsideGenerics
|
26
|
+
- spaceInsideParens
|
27
|
+
- specifiers
|
28
|
+
- todos
|
29
|
+
- trailingSpace
|
30
|
+
- wrapArguments
|
31
|
+
- redundantNilInit
|
32
|
+
- redundantParens
|
33
|
+
|
34
|
+
disabled_rules:
|
35
|
+
- void
|
36
|
+
- unusedArguments
|
37
|
+
- redundantBackticks
|
38
|
+
- redundantGet
|
39
|
+
- redundantLet
|
40
|
+
- redundantPattern
|
41
|
+
- redundantRawValues
|
42
|
+
- redundantReturn
|
43
|
+
- redundantSelf
|
44
|
+
- redundantVoidReturnType
|
45
|
+
- trailingCommas
|
46
|
+
- trailingClosures
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: code-formatter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sroik
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-01-
|
11
|
+
date: 2018-01-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -28,56 +28,70 @@ dependencies:
|
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: gem-release
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - ">"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rubocop
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0.52'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0.52'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: test-unit
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
72
86
|
requirements:
|
73
|
-
- - "
|
87
|
+
- - ">"
|
74
88
|
- !ruby/object:Gem::Version
|
75
89
|
version: '0'
|
76
90
|
type: :development
|
77
91
|
prerelease: false
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
79
93
|
requirements:
|
80
|
-
- - "
|
94
|
+
- - ">"
|
81
95
|
- !ruby/object:Gem::Version
|
82
96
|
version: '0'
|
83
97
|
description: swift code formatter
|
@@ -90,10 +104,14 @@ extra_rdoc_files: []
|
|
90
104
|
files:
|
91
105
|
- bin/code_formatter
|
92
106
|
- lib/code_formatter.rb
|
93
|
-
- lib/
|
94
|
-
- lib/
|
95
|
-
- lib/
|
96
|
-
- lib/
|
107
|
+
- lib/code_formatter/cli.rb
|
108
|
+
- lib/code_formatter/configuration.rb
|
109
|
+
- lib/code_formatter/formatters/formatter.rb
|
110
|
+
- lib/code_formatter/formatters/swift_format_formatter.rb
|
111
|
+
- lib/code_formatter/initializer.rb
|
112
|
+
- lib/code_formatter/resources/sample_config.config
|
113
|
+
- lib/code_formatter/resources/swiftformat_rules.yml
|
114
|
+
- lib/code_formatter/version.rb
|
97
115
|
homepage: https://github.com/app-craft/code-formatter
|
98
116
|
licenses:
|
99
117
|
- MIT
|
@@ -117,5 +135,5 @@ rubyforge_project:
|
|
117
135
|
rubygems_version: 2.7.3
|
118
136
|
signing_key:
|
119
137
|
specification_version: 4
|
120
|
-
summary:
|
138
|
+
summary: code formatter
|
121
139
|
test_files: []
|
data/lib/src/cli.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
require_relative 'initializer'
|
2
|
-
require 'thor'
|
3
|
-
|
4
|
-
module CodeFormatter
|
5
|
-
class CLI < Thor
|
6
|
-
desc 'init', 'create sample config'
|
7
|
-
def init
|
8
|
-
Initializer.init
|
9
|
-
end
|
10
|
-
|
11
|
-
desc 'format', 'description goes here'
|
12
|
-
option :config, default: Initializer.initialized_config, aliases: '-c', type: :string, desc: 'configuration file'
|
13
|
-
def format
|
14
|
-
puts 'Run Forrest! Ruuun!'
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|