Skip to content

Commit

Permalink
Remove snippet language inheritance (#1715)
Browse files Browse the repository at this point in the history
While I was at it I added missing languages and a few snippets

Fixes #1712
  • Loading branch information
AndreasArvidsson authored Feb 1, 2025
1 parent 42510a7 commit e9cb231
Show file tree
Hide file tree
Showing 38 changed files with 212 additions and 129 deletions.
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]:
"""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
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

0 comments on commit e9cb231

Please sign in to comment.