diff --git a/README.md b/README.md
index 644d1adf..6fdc31c7 100644
--- a/README.md
+++ b/README.md
@@ -41,11 +41,11 @@ Use your favorite package manager to install Neogen, e.g:
### Lazy
```lua
-{
- "danymat/neogen",
+{
+ "danymat/neogen",
config = true,
-- Uncomment next line if you want to follow only stable versions
- -- version = "*"
+ -- version = "*"
}
```
@@ -232,11 +232,12 @@ There is a list of supported languages and fields, with their annotation style
| c | [Doxygen](https://www.doxygen.nl/manual/commands.html) (`"doxygen"`) | `func`, `file`, `type` |
| cs | [Xmldoc](https://docs.microsoft.com/fr-fr/dotnet/csharp/language-reference/xmldoc/) (`"xmldoc"`)
[Doxygen](https://www.doxygen.nl/manual/commands.html) (`"doxygen"`) | `func`, `file`, `class` |
| cpp | [Doxygen](https://www.doxygen.nl/manual/commands.html) (`"doxygen"`) | `func`, `file`, `class` |
+| cuda | [Doxygen](https://www.doxygen.nl/manual/commands.html) (`"doxygen"`) | `func`, `file`, `class` |
| go | [GoDoc](https://go.dev/blog/godoc) (`"godoc"`) | `func`, `type` |
| java | [Javadoc](https://docs.oracle.com/javase/1.5.0/docs/tooldocs/windows/javadoc.html#documentationcomments) (`"javadoc`) | `func`, `class`, `type` |
| javascript | [JSDoc](https://jsdoc.app) (`"jsdoc"`) | `func`, `class`, `type`, `file` |
| javascriptreact | [JSDoc](https://jsdoc.app) (`"jsdoc"`) | `func`, `class`, `type`, `file` |
-| julia | [Julia](https://docs.julialang.org/en/v1/manual/documentation/#Writing-Documentation) (`"julia"`) | `func`, `class` |
+| julia | [Julia](https://docs.julialang.org/en/v1/manual/documentation/#Writing-Documentation) (`"julia"`) | `func`, `class` |
| kotlin | [KDoc](https://kotlinlang.org/docs/kotlin-doc.html) (`"kdoc"`) | `func`, `class` |
| lua | [Emmylua](https://emmylua.github.io/) (`"emmylua"`)
[Ldoc](https://stevedonovan.github.io/ldoc/manual/doc.md.html) (`"ldoc"`) | `func`, `class`, `type`, `file` |
| php | [Php-doc](https://docs.phpdoc.org/3.0/guide/references/phpdoc/index.html) (`"phpdoc"`) | `func`, `type`, `class` |
@@ -253,7 +254,7 @@ There is a list of supported languages and fields, with their annotation style
2. (advanced) Only if the defaults aren't enough, please see here: [Advanced Integration](./docs/advanced-integration.md)
Tip: Take a look at this beatiful diagram, showing a representation of the codebase. You can then take a first understanding of what is under the hood. For more details, you can see `:h neogen-develop`.
-
+

## Tests
diff --git a/lua/neogen/configurations/cuda.lua b/lua/neogen/configurations/cuda.lua
new file mode 100644
index 00000000..76c17b91
--- /dev/null
+++ b/lua/neogen/configurations/cuda.lua
@@ -0,0 +1,30 @@
+local c_config = require("neogen.configurations.c")
+local extractors = require("neogen.utilities.extractors")
+local nodes_utils = require("neogen.utilities.nodes")
+local i = require("neogen.types.template").item
+
+local cuda_config = {
+ parent = {
+ class = { "class_specifier", "struct_specifier" },
+ },
+ data = {
+ class = {
+ ["class_specifier|struct_specifier"] = {
+ ["0"] = {
+ extract = function(node)
+ local tree = {
+ { retrieve = "first", node_type = "type_identifier", extract = true, as = i.ClassName },
+ }
+ local nodes = nodes_utils:matching_nodes_from(node, tree)
+ local res = extractors:extract_from_matched(nodes)
+ return res
+ end,
+ },
+ },
+ },
+ },
+}
+
+cuda_config = vim.tbl_deep_extend("force", c_config, cuda_config)
+
+return cuda_config