aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2021-04-18 20:19:03 +0100
committergingerBill <bill@gingerbill.org>2021-04-18 20:19:03 +0100
commitae04af4e4ed4ecd521e1a915edd5b8637b1f40ce (patch)
tree3de41b8d2aa068b06f740dc9a805a3fb34714785 /src
parent3baddd4116e84c4f9175f42a074f3d2599aa4979 (diff)
Add package flags
Diffstat (limited to 'src')
-rw-r--r--src/docs_format.cpp7
-rw-r--r--src/docs_writer.cpp20
2 files changed, 26 insertions, 1 deletions
diff --git a/src/docs_format.cpp b/src/docs_format.cpp
index e08f75936..c3aaebf64 100644
--- a/src/docs_format.cpp
+++ b/src/docs_format.cpp
@@ -190,9 +190,16 @@ struct OdinDocEntity {
OdinDocArray<OdinDocString> where_clauses; // Procedures
};
+enum OdinDocPkgFlags : u32 {
+ OdinDocPkgFlag_Builtin = 1<<0,
+ OdinDocPkgFlag_Runtime = 1<<1,
+ OdinDocPkgFlag_Init = 1<<2,
+};
+
struct OdinDocPkg {
OdinDocString fullpath;
OdinDocString name;
+ u32 flags;
OdinDocString docs;
OdinDocArray<OdinDocFileIndex> files;
OdinDocArray<OdinDocEntityIndex> entities;
diff --git a/src/docs_writer.cpp b/src/docs_writer.cpp
index 57bc4ec66..5c9bb9f63 100644
--- a/src/docs_writer.cpp
+++ b/src/docs_writer.cpp
@@ -509,7 +509,6 @@ OdinDocTypeIndex odin_doc_type(OdinDocWriter *w, Type *type) {
map_set(&w->type_cache, hash_pointer(type), type_index);
map_set(&w->type_id_cache, hash_integer(type_index), type);
-
switch (type->kind) {
case Type_Basic:
doc_type.kind = OdinDocType_Basic;
@@ -1008,9 +1007,28 @@ void odin_doc_write_docs(OdinDocWriter *w) {
gbAllocator allocator = heap_allocator();
AstPackage *pkg = pkgs[i];
+
+ u32 pkg_flags = 0;
+ switch (pkg->kind) {
+ case Package_Normal:
+ break;
+ case Package_Runtime:
+ pkg_flags |= OdinDocPkgFlag_Runtime;
+ break;
+ case Package_Init:
+ pkg_flags |= OdinDocPkgFlag_Init;
+ break;
+ }
+ if (pkg->name == "builtin") {
+ pkg_flags |= OdinDocPkgFlag_Builtin;
+ } else if (pkg->name == "intrinsics") {
+ pkg_flags |= OdinDocPkgFlag_Builtin;
+ }
+
OdinDocPkg doc_pkg = {};
doc_pkg.fullpath = odin_doc_write_string(w, pkg->fullpath);
doc_pkg.name = odin_doc_write_string(w, pkg->name);
+ doc_pkg.flags = pkg_flags;
doc_pkg.docs = odin_doc_pkg_doc_string(w, pkg);
OdinDocPkg *dst = nullptr;