| ... | @@ -1844,18 +1844,26 @@ const NAV_MODES = { | ... | @@ -1844,18 +1844,26 @@ const NAV_MODES = { |
| 1844 | case typeKinds.Struct: { | 1844 | case typeKinds.Struct: { |
| 1845 | let structObj = typeObj; | 1845 | let structObj = typeObj; |
| 1846 | let name = ""; | 1846 | let name = ""; |
| | 1847 | let layout = ""; |
| | 1848 | if (structObj.layout !== null) { |
| | 1849 | switch (structObj.layout.enumLiteral) { |
| | 1850 | case "Packed": { |
| | 1851 | layout = "packed "; |
| | 1852 | break; |
| | 1853 | } |
| | 1854 | case "Extern": { |
| | 1855 | layout = "extern "; |
| | 1856 | break; |
| | 1857 | } |
| | 1858 | } |
| | 1859 | } |
| 1847 | if (opts.wantHtml) { | 1860 | if (opts.wantHtml) { |
| 1848 | name = "<span class='tok-kw'>struct</span>"; | 1861 | name = "<span class='tok-kw'>" + layout + "struct</span>"; |
| 1849 | } else { | 1862 | } else { |
| 1850 | name = "struct"; | 1863 | name = layout + "struct"; |
| 1851 | } | 1864 | } |
| 1852 | if (structObj.backing_int !== null) { | 1865 | if (structObj.backing_int !== null) { |
| 1853 | if (opts.wantHtml) { | 1866 | name += "(" + exprName(structObj.backing_int, opts) + ")"; |
| 1854 | name = "<span class='tok-kw'>packed</span> " + name; | | |
| 1855 | } else { | | |
| 1856 | name = "packed " + name; | | |
| 1857 | } | | |
| 1858 | name += " (" + exprName(structObj.backing_int, opts) + ")"; | | |
| 1859 | } | 1867 | } |
| 1860 | name += " { "; | 1868 | name += " { "; |
| 1861 | if (structObj.field_types.length > 1 && opts.wantHtml) { name += "</br>"; } | 1869 | if (structObj.field_types.length > 1 && opts.wantHtml) { name += "</br>"; } |
| ... | @@ -1912,7 +1920,7 @@ const NAV_MODES = { | ... | @@ -1912,7 +1920,7 @@ const NAV_MODES = { |
| 1912 | name = "enum"; | 1920 | name = "enum"; |
| 1913 | } | 1921 | } |
| 1914 | if (enumObj.tag) { | 1922 | if (enumObj.tag) { |
| 1915 | name += " (" + exprName(enumObj.tag, opts) + ")"; | 1923 | name += "(" + exprName(enumObj.tag, opts) + ")"; |
| 1916 | } | 1924 | } |
| 1917 | name += " { "; | 1925 | name += " { "; |
| 1918 | let enumNode = getAstNode(enumObj.src); | 1926 | let enumNode = getAstNode(enumObj.src); |
| ... | @@ -1963,16 +1971,29 @@ const NAV_MODES = { | ... | @@ -1963,16 +1971,29 @@ const NAV_MODES = { |
| 1963 | case typeKinds.Union: { | 1971 | case typeKinds.Union: { |
| 1964 | let unionObj = typeObj; | 1972 | let unionObj = typeObj; |
| 1965 | let name = ""; | 1973 | let name = ""; |
| | 1974 | let layout = ""; |
| | 1975 | if (unionObj.layout !== null) { |
| | 1976 | switch (unionObj.layout.enumLiteral) { |
| | 1977 | case "Packed": { |
| | 1978 | layout = "packed "; |
| | 1979 | break; |
| | 1980 | } |
| | 1981 | case "Extern": { |
| | 1982 | layout = "extern "; |
| | 1983 | break; |
| | 1984 | } |
| | 1985 | } |
| | 1986 | } |
| 1966 | if (opts.wantHtml) { | 1987 | if (opts.wantHtml) { |
| 1967 | name = "<span class='tok-kw'>union</span>"; | 1988 | name = "<span class='tok-kw'>" + layout + "union</span>"; |
| 1968 | } else { | 1989 | } else { |
| 1969 | name = "union"; | 1990 | name = layout + "union"; |
| 1970 | } | 1991 | } |
| 1971 | if (unionObj.auto_tag) { | 1992 | if (unionObj.auto_tag) { |
| 1972 | if (opts.wantHtml) { | 1993 | if (opts.wantHtml) { |
| 1973 | name += " (<span class='tok-kw'>enum</span>"; | 1994 | name += "(<span class='tok-kw'>enum</span>"; |
| 1974 | } else { | 1995 | } else { |
| 1975 | name += " (enum"; | 1996 | name += "(enum"; |
| 1976 | } | 1997 | } |
| 1977 | if (unionObj.tag) { | 1998 | if (unionObj.tag) { |
| 1978 | name += "(" + exprName(unionObj.tag, opts) + "))"; | 1999 | name += "(" + exprName(unionObj.tag, opts) + "))"; |
| ... | @@ -1980,7 +2001,7 @@ const NAV_MODES = { | ... | @@ -1980,7 +2001,7 @@ const NAV_MODES = { |
| 1980 | name += ")"; | 2001 | name += ")"; |
| 1981 | } | 2002 | } |
| 1982 | } else if (unionObj.tag) { | 2003 | } else if (unionObj.tag) { |
| 1983 | name += " (" + exprName(unionObj.tag, opts) + ")"; | 2004 | name += "(" + exprName(unionObj.tag, opts) + ")"; |
| 1984 | } | 2005 | } |
| 1985 | name += " { "; | 2006 | name += " { "; |
| 1986 | if (unionObj.field_types.length > 1 && opts.wantHtml) { | 2007 | if (unionObj.field_types.length > 1 && opts.wantHtml) { |
| ... | @@ -4499,6 +4520,7 @@ function addDeclToSearchResults(decl, declIndex, modNames, item, list, stack) { | ... | @@ -4499,6 +4520,7 @@ function addDeclToSearchResults(decl, declIndex, modNames, item, list, stack) { |
| 4499 | is_tuple: ty[8], | 4520 | is_tuple: ty[8], |
| 4500 | line_number: ty[9], | 4521 | line_number: ty[9], |
| 4501 | parent_container: ty[10], | 4522 | parent_container: ty[10], |
| | 4523 | layout: ty[11], |
| 4502 | }; | 4524 | }; |
| 4503 | case 10: // ComptimeExpr | 4525 | case 10: // ComptimeExpr |
| 4504 | case 11: // ComptimeFloat | 4526 | case 11: // ComptimeFloat |
| ... | @@ -4552,6 +4574,7 @@ function addDeclToSearchResults(decl, declIndex, modNames, item, list, stack) { | ... | @@ -4552,6 +4574,7 @@ function addDeclToSearchResults(decl, declIndex, modNames, item, list, stack) { |
| 4552 | tag: ty[6], | 4574 | tag: ty[6], |
| 4553 | auto_tag: ty[7], | 4575 | auto_tag: ty[7], |
| 4554 | parent_container: ty[8], | 4576 | parent_container: ty[8], |
| | 4577 | layout: ty[9], |
| 4555 | }; | 4578 | }; |
| 4556 | case 21: // Fn | 4579 | case 21: // Fn |
| 4557 | return { | 4580 | return { |