df_ls_structure 0.3.0-rc.1

A language server for Dwarf Fortress RAW files
Documentation
use super::*;
use df_ls_core::DFRawFile;
use df_ls_diagnostics::hash_map;
use df_ls_syntax_analysis::TokenDeserialize;
use serde::{Deserialize, Serialize};

pub type DFRaw = DFRawFile<Vec<ObjectToken>>;

#[derive(Serialize, Deserialize, Clone, Debug, Default, TokenDeserialize, PartialEq, Eq)]
#[token_de(second_par_check, token = "OBJECT")]
pub struct ObjectToken {
    #[token_de(token = "BODY")]
    pub body_tokens: Vec<BodyObjectToken>,
    #[token_de(token = "BODY_DETAIL_PLAN")]
    pub body_detail_plan_tokens: Vec<BodyDetailPlanToken>,
    #[token_de(token = "BUILDING")]
    pub building_tokens: Vec<BuildingToken>,
    #[token_de(token = "CREATURE")]
    pub creature_tokens: Vec<CreatureToken>,
    #[token_de(token = "CREATURE_VARIATION")]
    pub creature_variation_tokens: Vec<CreatureVariationToken>,
    #[token_de(token = "DESCRIPTOR_COLOR")]
    pub color_tokens: Vec<ColorToken>,
    #[token_de(token = "DESCRIPTOR_PATTERN")]
    pub pattern_tokens: Vec<PatternToken>,
    #[token_de(token = "DESCRIPTOR_SHAPE")]
    pub shape_tokens: Vec<ShapeToken>,
    #[token_de(token = "ENTITY")]
    pub entity_tokens: Vec<EntityToken>,
    #[token_de(token = "GRAPHICS")]
    pub graphics_tokens: Vec<GraphicsToken>,
    #[token_de(token = "INTERACTION")]
    pub interaction_tokens: Vec<InteractionToken>,
    #[token_de(token = "INORGANIC")]
    pub inorganic_tokens: Vec<InorganicToken>,
    #[token_de(token = "ITEM")]
    pub item_tokens: Vec<ItemToken>,
    #[token_de(token = "LANGUAGE")]
    pub language_tokens: Vec<LanguageToken>,
    #[token_de(token = "MATERIAL_TEMPLATE")]
    pub material_tokens: Vec<MaterialToken>,
    #[token_de(token = "PLANT")]
    pub plant_tokens: Vec<PlantToken>,
    #[token_de(token = "REACTION")]
    pub reaction_tokens: Vec<ReactionToken>,
    #[token_de(token = "TISSUE_TEMPLATE")]
    pub tissue_template_tokens: Vec<TissueToken>,
}