Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove snippet language inheritance #1715

Merged
merged 4 commits into from
Feb 1, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 4 additions & 27 deletions core/snippets/snippets.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,8 @@ def update_snippets():
insertions_phrase_map = {}
wrapper_map = {}

for lang_super in get_super_languages(lang):
# Assign global snippets to all languages
for lang_super in ["_", lang]:
snippets, insertions, insertions_phrase, wrappers = create_lists(
lang,
lang_super,
Expand Down Expand Up @@ -123,30 +124,6 @@ def get_snippets() -> list[Snippet]:
return result


def get_super_languages(language: str) -> list[str]:
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the principal logic that was removed.

"""Returns a list of languages that are considered a superset of <language>, including <language> itself. Eg `javascript` will be included in the list when <language> is `typescript`.
Note that the order of languages returned here is very important: more general must precede more specific, so that specific langs can properly override general languages.
"""
match language:
case "_":
return ["_"]
case "typescript":
return ["_", "javascript", "typescript"]
case "javascriptreact":
return ["_", "html", "javascript", "javascriptreact"]
case "typescriptreact":
return [
"_",
"html",
"javascript",
"typescript",
"javascriptreact",
"typescriptreact",
]
case _:
return ["_", language]


def group_by_language(snippets: list[Snippet]) -> dict[str, list[Snippet]]:
result = defaultdict(list)
for snippet in snippets:
Expand Down Expand Up @@ -200,10 +177,10 @@ def create_lists(


def on_ready():
fs.watch(str(SNIPPETS_DIR), lambda _1, _2: update_snippets())
fs.watch(SNIPPETS_DIR, lambda _path, _flags: update_snippets())

if get_setting_dir():
fs.watch(str(get_setting_dir()), lambda _1, _2: update_snippets())
fs.watch(get_setting_dir(), lambda _path, _flags: update_snippets())

update_snippets()

Expand Down
2 changes: 1 addition & 1 deletion core/snippets/snippets/caseStatement.snippet
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: caseStatement
phrase: case
---

language: javascript | java
language: c | cpp | csharp | java | javascript | typescript | javascriptreact | typescriptreact
insertionScope: branch
-
case $1:
Expand Down
15 changes: 11 additions & 4 deletions core/snippets/snippets/catchStatement.snippet
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,23 @@ name: catchStatement
phrase: catch
---

language: javascript
language: cpp
-
catch(error) {
catch (const std::exception& ex) {
$0
}
---

language: java
language: java | csharp
-
catch(Exception ex) {
catch(final Exception ex) {
$0
}
---

language: javascript | typescript | javascriptreact | typescriptreact
-
catch(error) {
$0
}
---
Expand Down
11 changes: 1 addition & 10 deletions core/snippets/snippets/classDeclaration.snippet
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,7 @@ $0.wrapperPhrase: class
$0.wrapperScope: statement
---

language: javascript

$1.insertionFormatter: PUBLIC_CAMEL_CASE
-
class $1 {
$0
}
---

language: java
language: cpp | csharp | java | javascript | typescript | javascriptreact | typescriptreact

$1.insertionFormatter: PUBLIC_CAMEL_CASE
-
Expand Down
4 changes: 2 additions & 2 deletions core/snippets/snippets/commentBlock.snippet
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ insertionScope: statement
$0.insertionFormatter: CAPITALIZE_FIRST_WORD
---

language: c | javascript | java
language: c | cpp | csharp | java | javascript | typescript | javascriptreact | typescriptreact
-
/* $0 */
---
Expand All @@ -15,7 +15,7 @@ language: python
"""$0"""
---

language: html
language: xml | html
-
<!-- $0 -->
---
2 changes: 1 addition & 1 deletion core/snippets/snippets/commentDocumentation.snippet
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ insertionScope: statement
$0.insertionFormatter: CAPITALIZE_FIRST_WORD
---

language: javascript | java
language: c | cpp | csharp | java | javascript | typescript | javascriptreact | typescriptreact
-
/** $0 */
---
Expand Down
4 changes: 2 additions & 2 deletions core/snippets/snippets/commentLine.snippet
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ phrase: comment
$0.insertionFormatter: CAPITALIZE_FIRST_WORD
---

language: c | javascript | java | json
language: c | cpp | csharp | json | java | javascript | typescript | javascriptreact | typescriptreact
-
// $0
---
Expand All @@ -14,7 +14,7 @@ language: python | talon | csv
# $0
---

language: html
language: xml | html
-
<!-- $0 -->
---
Expand Down
8 changes: 4 additions & 4 deletions core/snippets/snippets/constructorDeclaration.snippet
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@ phrase: constructor
insertionScope: namedFunction | statement
---

language: javascript
language: cpp | csharp | java
-
constructor($1) {
$1($2) {
$0
}
---

language: java
language: javascript | typescript | javascriptreact | typescriptreact
-
$1($2) {
constructor($1) {
$0
}
---
Expand Down
2 changes: 1 addition & 1 deletion core/snippets/snippets/defaultStatement.snippet
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: defaultStatement
phrase: default
---

language: javascript | java
language: c | cpp | csharp | java | javascript | typescript | javascriptreact | typescriptreact
-
default:
$0
Expand Down
2 changes: 1 addition & 1 deletion core/snippets/snippets/doWhileLoopStatement.snippet
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ phrase: do while
insertionScope: statement
---

language: javascript | java
language: c | cpp | csharp | java | javascript | typescript | javascriptreact | typescriptreact
-
do {
$0
Expand Down
2 changes: 1 addition & 1 deletion core/snippets/snippets/elseIfStatement.snippet
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ $0.wrapperPhrase: elif
$0.wrapperScope: statement
---

language: javascript | java
language: c | cpp | csharp | java | javascript | typescript | javascriptreact | typescriptreact
-
else if ($1) {
$0
Expand Down
2 changes: 1 addition & 1 deletion core/snippets/snippets/elseStatement.snippet
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ $0.wrapperPhrase: else
$0.wrapperScope: statement
---

language: javascript | java
language: c | cpp | csharp | java | javascript | typescript | javascriptreact | typescriptreact
-
else {
$0
Expand Down
2 changes: 1 addition & 1 deletion core/snippets/snippets/finallyStatement.snippet
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: finallyStatement
phrase: finally
---

language: javascript | java
language: csharp | java | javascript | typescript | javascriptreact | typescriptreact
-
finally {
$0
Expand Down
18 changes: 16 additions & 2 deletions core/snippets/snippets/forEachStatement.snippet
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,16 @@ phrase: for each
insertionScope: statement
---

language: javascript
language: cpp
-
for (const $1 of $2) {
for ($1 : $2) {
$0
}
---

language: csharp
-
foreach ($1 in $2) {
$0
}
---
Expand All @@ -17,6 +24,13 @@ for (final $1 : $2) {
}
---

language: javascript | typescript | javascriptreact | typescriptreact
-
for (const $1 of $2) {
$0
}
---

language: python
-
for $1 in $2:
Expand Down
8 changes: 4 additions & 4 deletions core/snippets/snippets/forLoopStatement.snippet
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@ phrase: for loop
insertionScope: statement
---

language: javascript
language: c | cpp | csharp | java
-
for (let i = 0; i < $1; ++i) {
for (int i = 0; i < $1; ++i) {
$0
}
---

language: java
language: javascript | typescript | javascriptreact | typescriptreact
-
for (int i = 0; i < $1; ++i) {
for (let i = 0; i < $1; ++i) {
$0
}
---
Expand Down
14 changes: 12 additions & 2 deletions core/snippets/snippets/formatString.snippet
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,26 @@ name: formatString
phrase: format
---

language: javascript
language: cpp
-
`$0`
std::format("$0")
---

language: csharp
-
String.Format("$0")
---

language: java
-
String.format("$0")
---

language: javascript | typescript | javascriptreact | typescriptreact
-
`$0`
---

language: python
-
f"$0"
Expand Down
2 changes: 1 addition & 1 deletion core/snippets/snippets/functionCall.snippet
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ insertionScope: statement
$0.wrapperPhrase: call
---

language: c | javascript | java | python | talon
language: c | cpp | csharp | python | talon | java | javascript | typescript | javascriptreact | typescriptreact
-
$1($0)
---
8 changes: 4 additions & 4 deletions core/snippets/snippets/functionDeclaration.snippet
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,20 @@ $0.wrapperPhrase: funk
$0.wrapperScope: statement
---

language: javascript
language: c | cpp | csharp | java

$1.insertionFormatter: PRIVATE_CAMEL_CASE
-
function $1($2) {
void $1($2) {
$0
}
---

language: java
language: javascript | typescript | javascriptreact | typescriptreact

$1.insertionFormatter: PRIVATE_CAMEL_CASE
-
void $1($2) {
function $1($2) {
$0
}
---
Expand Down
21 changes: 4 additions & 17 deletions core/snippets/snippets/html.snippet
Original file line number Diff line number Diff line change
@@ -1,23 +1,10 @@
language: html
language: html | javascriptreact | typescriptreact
---

name: element
Copy link
Collaborator Author

@AndreasArvidsson AndreasArvidsson Jan 31, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are moved to xml.snippet

phrase: element | tag
insertionScope: xmlElement

$1.insertionFormatter: PRIVATE_CAMEL_CASE
-
<$1>
$0
</$1>
---

name: attribute
phrase: attribute

$1.insertionFormatter: PRIVATE_CAMEL_CASE
name: attributeClassName
phrase: class name
-
$1=$0
className="$0"
---

name: table
Expand Down
2 changes: 1 addition & 1 deletion core/snippets/snippets/ifStatement.snippet
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ $0.wrapperPhrase: if
$0.wrapperScope: statement
---

language: javascript | java
language: c | cpp | csharp | java | javascript | typescript | javascriptreact | typescriptreact
-
if ($1) {
$0
Expand Down
2 changes: 1 addition & 1 deletion core/snippets/snippets/item.snippet
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ phrase: item
insertionScope: collectionItem
---

language: javascript
language: javascript | typescript | javascriptreact | typescriptreact
-
$1: $0,
---
Expand Down
Loading