SoloVim/after/plugin/snips/rust.lua

146 lines
1.6 KiB
Lua

if not pcall(require, "luasnip") then
return
end
local ls = require("luasnip")
local s = ls.snippet
local i = ls.insert_node
local fmt = require("luasnip.extras.fmt").fmt
local shared = require("solo.snips")
local same = shared.same
ls.add_snippets("rust", {
s(
"modtest",
fmt(
[[
#[cfg(test)]
mod tests {{
use super::*;
{}
}}
]],
{
i(1),
}
)
),
s(
"tmain",
fmt(
[[
#[tokio::main]
async fn main() -> Result<()> {{
Ok(())
}}
]],
{}
)
),
s(
"dead",
fmt(
[[
#[allow(dead_code)]
]],
{}
)
),
s(
"component",
fmt(
[[
#[derive(Debug, Reflect, Component)]
#[reflect(Component)]
struct {}
]],
{
i(1),
}
)
),
s(
"event",
fmt(
[[
#[derive(Debug, Event)]
struct {}
]],
{
i(1),
}
)
),
s(
"resource",
fmt(
[[
#[derive(Debug, Default, Reflect, Resource)]
#[reflect(Resource)]
struct {}
]],
{
i(1),
}
)
),
s(
"schedule",
fmt(
[[
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, ScheduleLabel)]
struct {}
]],
{
i(1),
}
)
),
s(
"states",
fmt(
[[
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Default, States)]
enum {} {{
#[default]
{}
}}
]],
{
i(1),
i(2),
}
)
),
s(
"systemset",
fmt(
[[
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, SystemSet)]
enum {} {{
{}
}}
]],
{
i(1),
i(2),
}
)
),
s(
"plugin",
fmt(
[[
use bevy::prelude::*;
pub(super) fn plugin(app: &mut App) {{
{}
}}
]],
{
i(1),
}
)
),
})