| ... | @@ -1848,18 +1848,26 @@ const NAV_MODES = { | ... | @@ -1848,18 +1848,26 @@ const NAV_MODES = { |
| 1848 | case typeKinds.Struct: { | 1848 | case typeKinds.Struct: { |
| 1849 | let structObj = typeObj; | 1849 | let structObj = typeObj; |
| 1850 | let name = ""; | 1850 | let name = ""; |
| | 1851 | let layout = ""; |
| | 1852 | if (structObj.layout !== null) { |
| | 1853 | switch (structObj.layout.enumLiteral) { |
| | 1854 | case "Packed": { |
| | 1855 | layout = "packed "; |
| | 1856 | break; |
| | 1857 | } |
| | 1858 | case "Extern": { |
| | 1859 | layout = "extern "; |
| | 1860 | break; |
| | 1861 | } |
| | 1862 | } |
| | 1863 | } |
| 1851 | if (opts.wantHtml) { | 1864 | if (opts.wantHtml) { |
| 1852 | name = "<span class='tok-kw'>struct</span>"; | 1865 | name = "<span class='tok-kw'>" + layout + "struct</span>"; |
| 1853 | } else { | 1866 | } else { |
| 1854 | name = "struct"; | 1867 | name = layout + "struct"; |
| 1855 | } | 1868 | } |
| 1856 | if (structObj.backing_int !== null) { | 1869 | if (structObj.backing_int !== null) { |
| 1857 | if (opts.wantHtml) { | 1870 | name += "(" + exprName(structObj.backing_int, opts) + ")"; |
| 1858 | name = "<span class='tok-kw'>packed</span> " + name; | | |
| 1859 | } else { | | |
| 1860 | name = "packed " + name; | | |
| 1861 | } | | |
| 1862 | name += " (" + exprName(structObj.backing_int, opts) + ")"; | | |
| 1863 | } | 1871 | } |
| 1864 | name += " { "; | 1872 | name += " { "; |
| 1865 | if (structObj.field_types.length > 1 && opts.wantHtml) { name += "</br>"; } | 1873 | if (structObj.field_types.length > 1 && opts.wantHtml) { name += "</br>"; } |
| ... | @@ -1916,7 +1924,7 @@ const NAV_MODES = { | ... | @@ -1916,7 +1924,7 @@ const NAV_MODES = { |
| 1916 | name = "enum"; | 1924 | name = "enum"; |
| 1917 | } | 1925 | } |
| 1918 | if (enumObj.tag) { | 1926 | if (enumObj.tag) { |
| 1919 | name += " (" + exprName(enumObj.tag, opts) + ")"; | 1927 | name += "(" + exprName(enumObj.tag, opts) + ")"; |
| 1920 | } | 1928 | } |
| 1921 | name += " { "; | 1929 | name += " { "; |
| 1922 | let enumNode = getAstNode(enumObj.src); | 1930 | let enumNode = getAstNode(enumObj.src); |
| ... | @@ -1967,16 +1975,29 @@ const NAV_MODES = { | ... | @@ -1967,16 +1975,29 @@ const NAV_MODES = { |
| 1967 | case typeKinds.Union: { | 1975 | case typeKinds.Union: { |
| 1968 | let unionObj = typeObj; | 1976 | let unionObj = typeObj; |
| 1969 | let name = ""; | 1977 | let name = ""; |
| | 1978 | let layout = ""; |
| | 1979 | if (unionObj.layout !== null) { |
| | 1980 | switch (unionObj.layout.enumLiteral) { |
| | 1981 | case "Packed": { |
| | 1982 | layout = "packed "; |
| | 1983 | break; |
| | 1984 | } |
| | 1985 | case "Extern": { |
| | 1986 | layout = "extern "; |
| | 1987 | break; |
| | 1988 | } |
| | 1989 | } |
| | 1990 | } |
| 1970 | if (opts.wantHtml) { | 1991 | if (opts.wantHtml) { |
| 1971 | name = "<span class='tok-kw'>union</span>"; | 1992 | name = "<span class='tok-kw'>" + layout + "union</span>"; |
| 1972 | } else { | 1993 | } else { |
| 1973 | name = "union"; | 1994 | name = layout + "union"; |
| 1974 | } | 1995 | } |
| 1975 | if (unionObj.auto_tag) { | 1996 | if (unionObj.auto_tag) { |
| 1976 | if (opts.wantHtml) { | 1997 | if (opts.wantHtml) { |
| 1977 | name += " (<span class='tok-kw'>enum</span>"; | 1998 | name += "(<span class='tok-kw'>enum</span>"; |
| 1978 | } else { | 1999 | } else { |
| 1979 | name += " (enum"; | 2000 | name += "(enum"; |
| 1980 | } | 2001 | } |
| 1981 | if (unionObj.tag) { | 2002 | if (unionObj.tag) { |
| 1982 | name += "(" + exprName(unionObj.tag, opts) + "))"; | 2003 | name += "(" + exprName(unionObj.tag, opts) + "))"; |
| ... | @@ -1984,7 +2005,7 @@ const NAV_MODES = { | ... | @@ -1984,7 +2005,7 @@ const NAV_MODES = { |
| 1984 | name += ")"; | 2005 | name += ")"; |
| 1985 | } | 2006 | } |
| 1986 | } else if (unionObj.tag) { | 2007 | } else if (unionObj.tag) { |
| 1987 | name += " (" + exprName(unionObj.tag, opts) + ")"; | 2008 | name += "(" + exprName(unionObj.tag, opts) + ")"; |
| 1988 | } | 2009 | } |
| 1989 | name += " { "; | 2010 | name += " { "; |
| 1990 | if (unionObj.field_types.length > 1 && opts.wantHtml) { | 2011 | if (unionObj.field_types.length > 1 && opts.wantHtml) { |
| ... | @@ -4510,6 +4531,7 @@ function addDeclToSearchResults(decl, declIndex, modNames, item, list, stack) { | ... | @@ -4510,6 +4531,7 @@ function addDeclToSearchResults(decl, declIndex, modNames, item, list, stack) { |
| 4510 | is_tuple: ty[8], | 4531 | is_tuple: ty[8], |
| 4511 | line_number: ty[9], | 4532 | line_number: ty[9], |
| 4512 | parent_container: ty[10], | 4533 | parent_container: ty[10], |
| | 4534 | layout: ty[11], |
| 4513 | }; | 4535 | }; |
| 4514 | case 10: // ComptimeExpr | 4536 | case 10: // ComptimeExpr |
| 4515 | case 11: // ComptimeFloat | 4537 | case 11: // ComptimeFloat |
| ... | @@ -4563,6 +4585,7 @@ function addDeclToSearchResults(decl, declIndex, modNames, item, list, stack) { | ... | @@ -4563,6 +4585,7 @@ function addDeclToSearchResults(decl, declIndex, modNames, item, list, stack) { |
| 4563 | tag: ty[6], | 4585 | tag: ty[6], |
| 4564 | auto_tag: ty[7], | 4586 | auto_tag: ty[7], |
| 4565 | parent_container: ty[8], | 4587 | parent_container: ty[8], |
| | 4588 | layout: ty[9], |
| 4566 | }; | 4589 | }; |
| 4567 | case 21: // Fn | 4590 | case 21: // Fn |
| 4568 | return { | 4591 | return { |