|
41 | 41 | * @link https://github.com/DennisBecker/php-code-formatter |
42 | 42 | */ |
43 | 43 |
|
44 | | - |
45 | 44 | namespace PHP\CodeFormatter; |
46 | 45 |
|
47 | 46 | use PHP\CodeFormatter\Tokenizer; |
@@ -90,104 +89,104 @@ public function format($source) |
90 | 89 | $tokens = $this->tokenizer->tokenize($source); |
91 | 90 | $output = ''; |
92 | 91 |
|
93 | | - $lines = array(); |
94 | | - $indentLine = false; |
95 | | - $indentNextLine = false; |
96 | | - $usedKeys = array(); |
97 | | - foreach ($tokens as $key => $token) { |
98 | | - if(in_array($key, $usedKeys)) { |
99 | | - continue; |
100 | | - } |
101 | | - |
102 | | - if ($indentNextLine) { |
103 | | - $indentLine = true; |
104 | | - $indentNextLine = false; |
105 | | - } |
106 | | - |
107 | | - $lineCount = count($lines); |
108 | | - $lines[$lineCount] = ''; |
109 | | - switch ($token->getName()) { |
110 | | - case 'T_OPEN_TAG': |
111 | | - $lines[$lineCount] .= $this->standard->getOpenTag(); |
112 | | - break; |
113 | | - case 'T_CLASS': |
114 | | - $usedKeys[] = $key+1; |
115 | | - $lines[$lineCount] .= $token->getContent() . " " . $tokens[$key+1]->getContent(); |
116 | | - break; |
117 | | - case 'T_CLASS_OPEN_CURLY_BRACKET': |
118 | | - if($this->standard->isClassOpenCurlyBracketOnSameLine()) { |
119 | | - $lines[$lineCount-1] .= " " . $token->getContent(); |
120 | | - unset($lines[$lineCount]); |
121 | | - } else { |
122 | | - $lines[$lineCount] .= $token->getContent(); |
123 | | - } |
124 | | - |
125 | | - $this->standard->increaseIndent(); |
126 | | - $indentNextLine = true; |
127 | | - break; |
128 | | - case 'T_PUBLIC': |
129 | | - $lines[$lineCount] .= $token->getContent() . " "; |
130 | | - $i = 1; |
131 | | - $addStrings = array(); |
132 | | - while ($tokens[$key+$i]->getContent() != '(') { |
133 | | - $usedKeys[] = $key+$i; |
134 | | - $addStrings[] = $tokens[$key+$i]->getContent(); |
135 | | - ++$i; |
136 | | - } |
137 | | - $lines[$lineCount] .= implode(' ', $addStrings); |
138 | | -// var_dump($tokens[$key+$i]->getContent()); |
139 | | -// $lines[$lineCount] .= $tokens[$key+$i]->getContent(); |
140 | | -// $usedKeys[] = $key+$i; |
141 | | - |
142 | | - while ($tokens[$key+$i]->getContent() != '{') { |
143 | | - $usedKeys[] = $key+$i; |
144 | | - $lines[$lineCount] .= $tokens[$key+$i]->getContent(); |
145 | | - if ($tokens[$key+$i]->getContent() == ',') { |
146 | | - $lines[$lineCount] .= " "; |
147 | | - } |
148 | | - ++$i; |
149 | | - } |
150 | | - break; |
151 | | - case 'T_FUNCTION_OPEN_CURLY_BRACKET': |
152 | | - if($this->standard->isFunctionOpenCurlyBracketOnSameLine()) { |
153 | | - $lines[$lineCount-1] .= " " . $token->getContent(); |
154 | | - unset($lines[$lineCount]); |
155 | | - } else { |
156 | | - $lines[$lineCount] .= $token->getContent(); |
157 | | - } |
158 | | - |
159 | | - $this->standard->increaseIndent(); |
160 | | - break; |
161 | | - case 'T_IF': |
162 | | - $lines[$lineCount] .= $token->getContent(); |
163 | | - break; |
164 | | - default: |
165 | | - var_dump($token); |
166 | | - var_dump($lines); |
167 | | - die(); |
168 | | - } |
169 | | - |
170 | | - if($indentLine && $lines[$lineCount] != '') { |
171 | | - $lines[$lineCount] = $this->standard->addIndent() . $lines[$lineCount]; |
172 | | - } |
173 | | - } |
174 | | - |
175 | | - var_dump($lines); |
176 | | - die(); |
177 | | - |
178 | | -// foreach ($tokens as $token) { |
| 92 | +// $lines = array(); |
| 93 | +// $indentLine = false; |
| 94 | +// $indentNextLine = false; |
| 95 | +// $usedKeys = array(); |
| 96 | +// foreach ($tokens as $key => $token) { |
| 97 | +// if(in_array($key, $usedKeys)) { |
| 98 | +// continue; |
| 99 | +// } |
| 100 | +// |
| 101 | +// if ($indentNextLine) { |
| 102 | +// $indentLine = true; |
| 103 | +// $indentNextLine = false; |
| 104 | +// } |
| 105 | +// |
| 106 | +// $lineCount = count($lines); |
| 107 | +// $lines[$lineCount] = ''; |
| 108 | +// switch ($token->getName()) { |
| 109 | +// case 'T_OPEN_TAG': |
| 110 | +// $lines[$lineCount] .= $this->standard->getOpenTag(); |
| 111 | +// break; |
| 112 | +// case 'T_CLASS': |
| 113 | +// $usedKeys[] = $key+1; |
| 114 | +// $lines[$lineCount] .= $token->getContent() . " " . $tokens[$key+1]->getContent(); |
| 115 | +// break; |
| 116 | +// case 'T_CLASS_OPEN_CURLY_BRACKET': |
| 117 | +// if($this->standard->isClassOpenCurlyBracketOnSameLine()) { |
| 118 | +// $lines[$lineCount-1] .= " " . $token->getContent(); |
| 119 | +// unset($lines[$lineCount]); |
| 120 | +// } else { |
| 121 | +// $lines[$lineCount] .= $token->getContent(); |
| 122 | +// } |
| 123 | +// |
| 124 | +// $this->standard->increaseIndent(); |
| 125 | +// $indentNextLine = true; |
| 126 | +// break; |
| 127 | +// case 'T_PUBLIC': |
| 128 | +// $lines[$lineCount] .= $token->getContent() . " "; |
| 129 | +// $i = 1; |
| 130 | +// $addStrings = array(); |
| 131 | +// while ($tokens[$key+$i]->getContent() != '(') { |
| 132 | +// $usedKeys[] = $key+$i; |
| 133 | +// $addStrings[] = $tokens[$key+$i]->getContent(); |
| 134 | +// ++$i; |
| 135 | +// } |
| 136 | +// $lines[$lineCount] .= implode(' ', $addStrings); |
| 137 | +//// var_dump($tokens[$key+$i]->getContent()); |
| 138 | +//// $lines[$lineCount] .= $tokens[$key+$i]->getContent(); |
| 139 | +//// $usedKeys[] = $key+$i; |
| 140 | +// |
| 141 | +// while ($tokens[$key+$i]->getContent() != '{') { |
| 142 | +// $usedKeys[] = $key+$i; |
| 143 | +// $lines[$lineCount] .= $tokens[$key+$i]->getContent(); |
| 144 | +// if ($tokens[$key+$i]->getContent() == ',') { |
| 145 | +// $lines[$lineCount] .= " "; |
| 146 | +// } |
| 147 | +// ++$i; |
| 148 | +// } |
| 149 | +// break; |
| 150 | +// case 'T_FUNCTION_OPEN_CURLY_BRACKET': |
| 151 | +// if($this->standard->isFunctionOpenCurlyBracketOnSameLine()) { |
| 152 | +// $lines[$lineCount-1] .= " " . $token->getContent(); |
| 153 | +// unset($lines[$lineCount]); |
| 154 | +// } else { |
| 155 | +// $lines[$lineCount] .= $token->getContent(); |
| 156 | +// } |
| 157 | +// |
| 158 | +// $this->standard->increaseIndent(); |
| 159 | +// break; |
| 160 | +// case 'T_IF': |
| 161 | +// $lines[$lineCount] .= $token->getContent(); |
| 162 | +// break; |
| 163 | +// default: |
| 164 | +// var_dump($token); |
| 165 | +// var_dump($lines); |
| 166 | +// die(); |
| 167 | +// } |
179 | 168 | // |
180 | | -// $methodName = $this->buildMethodName($token->getName()); |
181 | | -// if (method_exists($this->standard, $methodName)) { |
182 | | -// $output .= $this->standard->$methodName($token); |
183 | | -// } else { |
184 | | -// echo "Unimplemented method '$methodName'\n"; |
185 | | -// var_dump($token); |
186 | | -// die(); |
| 169 | +// if($indentLine && $lines[$lineCount] != '') { |
| 170 | +// $lines[$lineCount] = $this->standard->addIndent() . $lines[$lineCount]; |
187 | 171 | // } |
188 | 172 | // } |
189 | 173 | // |
190 | | -// var_dump($output); |
| 174 | +// var_dump($lines); |
| 175 | +// die(); |
| 176 | + |
| 177 | + foreach ($tokens as $token) { |
| 178 | + |
| 179 | + $methodName = $this->buildMethodName($token->getName()); |
| 180 | + if (method_exists($this->standard, $methodName)) { |
| 181 | + $output .= $this->standard->$methodName($token); |
| 182 | + } else { |
| 183 | + echo "Unimplemented method '$methodName'\n"; |
| 184 | + var_dump($token); |
| 185 | + die(); |
| 186 | + } |
| 187 | + } |
| 188 | + |
| 189 | + var_dump($output); |
191 | 190 | } |
192 | 191 |
|
193 | 192 | /** |
|
0 commit comments