@@ -35,6 +35,20 @@ class MyPair extends Pair<...> { ... }
3535Most examples below assume that qtil is imported via the former method. Additionally, some qtilities
3636are language specific and should typically be accessed by `import qtil.lang`, e.g., `qtil.cpp`.
3737
38+ # # Supported Languages
39+
40+ - C/C++ : ✅ available as `import qtil.Cpp` in pack `GithubSecurityLab/qtil-cpp`
41+ - C#: ✅ available as `import qtil.CSharp` in pack `GithubSecurityLab/qtil-csharp`
42+ - Go : ✅ available as `import qtil.Go` in pack `GithubSecurityLab/qtil-go`
43+ - Java : ✅ available as `import qtil.Java` in pack `GithubSecurityLab/qtil-java`
44+ - JavaScript : ✅ available as `import qtil.Javascript` in pack `GithubSecurityLab/qtil-javascript`
45+ - Python : ✅ available as `import qtil.Python` in pack `GithubSecurityLab/qtil-python`
46+ - Ruby : ✅ available as `import qtil.Ruby` in pack `GithubSecurityLab/qtil-ruby`
47+ - Rust : ❌ not yet available
48+ - Swift : ✅ available as `import qtil.Swift` in pack `GithubSecurityLab/qtil-swift`
49+ - QL : ❌ not yet available
50+ - other languages : ❌ not supported by CodeQL.
51+
3852# # Features
3953
4054# ## Pairs, Tuples, and Products, oh my!
@@ -215,8 +229,8 @@ predicate problem(Locatable elem, Qtil::Template template) {
215229 var = elem and
216230 fc = var.getInitializer().getAChild*() and
217231 template = Qtil::tpl("Initializer of variable '{name}' calls {fn}.")
218- .withParam ("name", var.getName())
219- .withParam ("fn", fc.getFunction().getName() , fc.getFunction())
232+ .text ("name", var.getName())
233+ .link ("fn", fc.getFunction())
220234 )
221235}
222236
@@ -239,7 +253,7 @@ predicate problem(...) {
239253 var = elem and
240254 not exists(FunctionCall fc | fc = var.getInitializer().getAChild*()) and
241255 template = Qtil::tpl("Variable '{name}' has no initializer.")
242- .withParam ("name", var.getName())
256+ .text ("name", var.getName())
243257 )
244258}
245259` ` `
0 commit comments