Skip to content

Commit

Permalink
Merge pull request #8 from surfstudio/SPT-2156-environmentAccessible
Browse files Browse the repository at this point in the history
SPT-2156 Макрос для добавления EnvironmentKey и EnvironmentValues
  • Loading branch information
NullIsOne authored Jun 7, 2024
2 parents ab63364 + a938fbb commit b33e1c8
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 1 deletion.
2 changes: 1 addition & 1 deletion Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ VSURF-Support/
- `MacrosPlugin.swift` - файл-плагин, содержащий все макросы библиотеки; реализуется за счет использования плагинов групп.

# Code Snippets
По пути `/Sources/.codesnippets/` можно найти code snippet'ы, используемые в проекте. Для установки перенесите в `~/Library/Developer/Xcode/UserData/CodeSnippets/previews.codesnippet` файлы с необходимыми snippet'ами, после чего перезапустите Xcode.
По пути `/Sources/.codesnippets/` можно найти code snippet'ы, используемые в проекте. Для установки перенесите в `~/Library/Developer/Xcode/UserData/CodeSnippets/` файлы с необходимыми snippet'ами, после чего перезапустите Xcode.
## Существующие snippets
- **Previews**

Expand Down
48 changes: 48 additions & 0 deletions Sources/.codesnippets/envacc.codesnippet
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDECodeSnippetCompletionPrefix</key>
<string>envacc</string>
<key>IDECodeSnippetCompletionScopes</key>
<array>
<string>TopLevel</string>
</array>
<key>IDECodeSnippetContents</key>
<string>public enum &lt;#Style#&gt;Key: EnvironmentKey {

public static var defaultValue: any &lt;#Style#&gt; = &lt;#defaultValue#&gt;

}

public extension EnvironmentValues {

var &lt;#style#&gt;: any &lt;#Style#&gt; {
get { self[&lt;#Style#&gt;Key.self] }
set { self[&lt;#Style#&gt;Key.self] = newValue }
}

}

public extension View {

func &lt;#style#&gt;(_ style: any &lt;#Style#&gt;) -&gt; some View {
self.environment(\.&lt;#style#&gt;, style)
}

}
</string>
<key>IDECodeSnippetIdentifier</key>
<string>4D299F53-806E-4E29-8B00-8A0DFA5E500D</string>
<key>IDECodeSnippetLanguage</key>
<string>Xcode.SourceCodeLanguage.Swift</string>
<key>IDECodeSnippetSummary</key>
<string>Содержит все необходимое для добавления Style в SwiftUI</string>
<key>IDECodeSnippetTitle</key>
<string>EnvironmentAccessible</string>
<key>IDECodeSnippetUserSnippet</key>
<true/>
<key>IDECodeSnippetVersion</key>
<integer>2</integer>
</dict>
</plist>
4 changes: 4 additions & 0 deletions TechDocs/tech_guidelines.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ let input closure = getInputClosure(from: node)
```swift
let router = createRouterVariable()
```
- `check`, если функция проверяет контекст макроса (тип декларации, к которой прикрепили макрос, ее внутренние свойства и т.д.)
```swift
try checkAttachedType(declaration)
```

**Имена переменных**
- при создании экземпляра `TokenSyntax` не стоит писать `Token` в названии переменной, лучше укажите, что будет хранить переменная.
Expand Down

0 comments on commit b33e1c8

Please sign in to comment.