220 35999 <e04f108e-9c60-4ee9-aac6-abfa5a583ce3@isocpp.org> article
Path: news.gmane.org!.POSTED!not-for-mail
From: wm.hemsworth@gmail.com
Newsgroups: gmane.comp.lang.c++.isocpp.proposals
Subject: Pre-processor "Uncollapsable" Regions
Date: Mon, 18 Dec 2017 17:38:41 -0800 (PST)
Lines: 374
Approved: news@gmane.org
Message-ID: <e04f108e-9c60-4ee9-aac6-abfa5a583ce3@isocpp.org>
Reply-To: std-proposals@isocpp.org
NNTP-Posting-Host: blaine.gmane.org
Mime-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_7373_2135435319.1513647521682"
X-Trace: blaine.gmane.org 1513647410 31690 195.159.176.226 (19 Dec 2017 01:36:50 GMT)
X-Complaints-To: usenet@blaine.gmane.org
NNTP-Posting-Date: Tue, 19 Dec 2017 01:36:50 +0000 (UTC)
To: ISO C++ Standard - Future Proposals <std-proposals@isocpp.org>
Original-X-From: std-proposals+bncBCMZTWUEK4IKFW7B2ECRUBGL5BLUK@isocpp.org Tue Dec 19 02:36:46 2017
Return-path: <std-proposals+bncBCMZTWUEK4IKFW7B2ECRUBGL5BLUK@isocpp.org>
Envelope-to: gclcip-std-proposals@m.gmane.org
Original-Received: from mail-ua0-f198.google.com ([209.85.217.198])
	by blaine.gmane.org with esmtp (Exim 4.84_2)
	(envelope-from <std-proposals+bncBCMZTWUEK4IKFW7B2ECRUBGL5BLUK@isocpp.org>)
	id 1eR6pl-0007ZJ-PG
	for gclcip-std-proposals@m.gmane.org; Tue, 19 Dec 2017 02:36:42 +0100
Original-Received: by mail-ua0-f198.google.com with SMTP id e13sf3346927ual.3
        for <gclcip-std-proposals@m.gmane.org>; Mon, 18 Dec 2017 17:38:44 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=isocpp-org.20150623.gappssmtp.com; s=20150623;
        h=date:from:to:message-id:subject:mime-version:x-original-sender
         :reply-to:precedence:mailing-list:list-id:list-post:list-help
         :list-archive:list-subscribe:list-unsubscribe;
        bh=uKw8UpB6bW0+Cy9arHwPKKY1VcCnEr54DPyShqclsRQ=;
        b=T2L561ef81dgfWofFASFQ9dwGbXtliRsf3hJ93JI6PHir6LHXqLAL5Ol7rmkZhbIZv
         y7+OSySRQq+AT7brM+rsvpmEiGyEw3dELou5PEAdsDE/OZy+NQTi2ApBJVhDl5geGp7q
         RnEzwRQzbZ/lDl3NNi4Xw6hKGF+BiwXF6JNpNbtsq/Lis9s3adPSI63ExEm14NcRqjuW
         U/Z3fVPhzVw4UWskxTj2WukjavKKNuXxKGjRCGXa5aj0TTx5Ep/XUodLpzc04Cgi0XQT
         bONH4FL4O2PHKWzG/4AbPddZlKi9jiszPSpCs0+Zlbpp76s9ZFxHbSDi6uPH7FUFKpRF
         fNBA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20161025;
        h=date:from:to:message-id:subject:mime-version:x-original-sender
         :reply-to:precedence:mailing-list:list-id:list-post:list-help
         :list-archive:list-subscribe:list-unsubscribe;
        bh=uKw8UpB6bW0+Cy9arHwPKKY1VcCnEr54DPyShqclsRQ=;
        b=tDwI3mBq5hyaRam2VoapQeaPUmJCoId5pO6704bqrjoi1cqipDlSBjTTTZE8TDI5iP
         jttZqHPuGG+5rzbTwBF58t5Mdfn+IOKQ8BmTVms4m8hecM3pG/IqA3pkTsHgegEUrpst
         x/K92TM0F0syLViqv5YZ7ZZgnBReZGchHHdeahS9kPF0pTX7gP83sYwVQGRGIKA/C4K0
         FLEXD4wLhz+gzIKHB6uNZTJzCJr0r8c+9B6p5fBovnMMC6pr5WjFaSP+kJFENPnLVasN
         OVlNXfRFRVlPY1ahfTb0hOj99HJhY2hLpylLlo9wjPIR+Kw/bt+Q4R4FsMTTUD7pTxkD
         HMIQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:date:from:to:message-id:subject:mime-version
         :x-original-sender:reply-to:precedence:mailing-list:list-id
         :x-spam-checked-in-group:list-post:list-help:list-archive
         :list-subscribe:list-unsubscribe;
        bh=uKw8UpB6bW0+Cy9arHwPKKY1VcCnEr54DPyShqclsRQ=;
        b=e7QouQnvzORsYvZ2lwpS/+Cm0HS+jCiTWD7mt42Gmq33Fg+sS85jif1R160+pSQ1sM
         RQgFfyD1ghyvnoP7I1N0G8MSsK1MebFPC0jfhka1rOAPifbbpv80KYkckjSb46bZeMWo
         bnAHy+/cZXy/x8sMxsEqU1gAbnbdU96ZzJcoqiylXsXi5bUtCZG4LphUJivGJDDjGFx0
         YsW7wGutEoitf95chyo+yoEKt2akh8Nf92shgnN7OdG52+WtwS+aU6+5T2uX/+Sr0kiP
         GnaMp/X3qRk/cLhqTq5enMHY/7E4xCG9qmJZXoWvOwK+r77spXWnuXrz7VtfKwyEOCO4
         47KQ==
X-Gm-Message-State: AKGB3mIBXb9DSxkhGQSXH2cZNVkJ9y2Pwm0Z21OlxmdVE3kLDdmp57+/
	jIWsvDqDhhBjS6qR5qU1xpDiNQ==
X-Google-Smtp-Source: ACJfBot2G+N88xV3rjRKNywFGfSfZhrZ4k2QgWQypD3rQ7h///ZG9FS+lUVW8jEaXK3PJWT3ArnymQ==
X-Received: by 10.176.22.46 with SMTP id k43mr864618uae.111.1513647523904;
        Mon, 18 Dec 2017 17:38:43 -0800 (PST)
X-BeenThere: std-proposals@isocpp.org
Original-Received: by 10.31.98.67 with SMTP id w64ls2344771vkb.4.gmail; Mon, 18 Dec
 2017 17:38:42 -0800 (PST)
X-Received: by 10.31.164.131 with SMTP id n125mr153099vke.14.1513647522227;
        Mon, 18 Dec 2017 17:38:42 -0800 (PST)
X-Original-Sender: wm.hemsworth@gmail.com
Precedence: list
Mailing-list: list std-proposals@isocpp.org; contact std-proposals+owners@isocpp.org
List-ID: <std-proposals.isocpp.org>
X-Spam-Checked-In-Group: std-proposals@isocpp.org
X-Google-Group-Id: 399137483710
List-Post: <https://groups.google.com/a/isocpp.org/group/std-proposals/post>, <mailto:std-proposals@isocpp.org>
List-Help: <https://support.google.com/a/isocpp.org/bin/topic.py?topic=25838>, <mailto:std-proposals+help@isocpp.org>
List-Archive: <https://groups.google.com/a/isocpp.org/group/std-proposals/>
List-Subscribe: <https://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>,
 <mailto:std-proposals+subscribe@isocpp.org>
List-Unsubscribe: <mailto:googlegroups-manage+399137483710+unsubscribe@googlegroups.com>,
 <https://groups.google.com/a/isocpp.org/group/std-proposals/subscribe>
Xref: news.gmane.org gmane.comp.lang.c++.isocpp.proposals:35999
Archived-At: <http://permalink.gmane.org/gmane.comp.lang.c++.isocpp.proposals/35999>

------=_Part_7373_2135435319.1513647521682
Content-Type: multipart/alternative; 
	boundary="----=_Part_7374_435929563.1513647521683"

------=_Part_7374_435929563.1513647521683
Content-Type: text/plain; charset="UTF-8"

This would be helpful because I often select the entire source code, and
use *CTRL-A* then *CTRL-M* to collapse/expand all the code. For large files
with lots of functions, this can make them much easier to navigate through.

In projects with a large number of files, I add header-guards to my headers,
and I find it frustrating that they get collapsed too. Here is an ideal 
snippet
of code showing the new feature I would like for the pre-processor:


 *-*
*| #ifndef FILE_H_INCLUDED  | #define*
* FILE_H_INCLIDED*  *|* 
  *|* *#pragma region (disable:comments) // This disables comments from 
being collapsed*
  *|* 
 *-**|* *// Node comment (not collapsed on CTRL-M)*
* +**|* *struct** Node* * {  ...  } *
  *|* 
 *-**|* */* Table Multi-line comment*
  *|*    *(not collapsed on CTRL-M)*  **/*
* +**|* *struct** Table* 
* {  ...  } *  *|* 
  *|* *#pragma endregion // Pop back to previous state*
  *|* 
  *|* *#endif*


*CTRL-M* simply collapses every single collapse block, regardless of 
context.
It would be nice to be able to force any region of code to be strictly non-
collapsible, such as vital comments, #include's, and huge blocks which occur
naturally with header guards.

These are some features which I would like to see implemented, for the sake
of maintainability and programming efficiency:

#pragma region (*disable*:comments)   // Prevent both single and multi-line 
comments from being collapsible.
#pragma region (*disable*:includes)   // Prevent #include's from being 
collapsible.
#pragma region (*disable*:scopes)     // Prevent scopes within a function 
being collapsible.


#pragma endregion // scopes
#pragma endregion // includes
#pragma endregion // comments



And also sometime like:



*#pragma region (disable:all)*

*// *All* collapsible regions disabled (comments, includes, function 
scopes, etc..)#pragma endregion // All*


Is anything like this currently possible? If not, myself (any probably many 
others) would greatly appreciate this feature in the next update.

Kind Regards,
William Hemsworth

-- 
You received this message because you are subscribed to the Google Groups "ISO C++ Standard - Future Proposals" group.
To unsubscribe from this group and stop receiving emails from it, send an email to std-proposals+unsubscribe@isocpp.org.
To post to this group, send email to std-proposals@isocpp.org.
To view this discussion on the web visit https://groups.google.com/a/isocpp.org/d/msgid/std-proposals/e04f108e-9c60-4ee9-aac6-abfa5a583ce3%40isocpp.org.

------=_Part_7374_435929563.1513647521683
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><font face=3D"courier new, monospace">This would be helpfu=
l because I often select the entire source code,=C2=A0</font><font face=3D"=
courier new, monospace">and</font><div><font face=3D"courier new, monospace=
">use <b>CTRL-A</b> then=C2=A0<b>CTRL-M</b> to=C2=A0</font><span style=3D"f=
ont-family: &quot;courier new&quot;, monospace;">collapse/expand</span><spa=
n style=3D"font-family: &quot;courier new&quot;, monospace;">=C2=A0all the =
code. For large files</span></div><div><font face=3D"courier new, monospace=
">with lots of functions, this can make them much easier to navigate throug=
h.<br></font><div><div><br></div><div><font face=3D"courier new, monospace"=
>In projects with a large number of files, I add header-guards to my header=
s</font><span style=3D"font-family: &quot;courier new&quot;, monospace;">,<=
/span></div><div><font face=3D"courier new, monospace">and I find it=C2=A0<=
/font><font face=3D"courier new, monospace">frustrating that they get colla=
psed too. Here is an ideal=C2=A0</font><font face=3D"courier new, monospace=
">snippet</font></div><div><font face=3D"courier new, monospace">of code sh=
owing the new feature I would like for the pre-</font><span style=3D"font-f=
amily: &quot;courier new&quot;, monospace;">processor:</span></div><div><sp=
an style=3D"font-family: &quot;courier new&quot;, monospace;"><br></span></=
div><div><font face=3D"courier new, monospace"><br></font></div><div class=
=3D"prettyprint" style=3D"border-color: rgb(187, 187, 187); border-style: s=
olid; border-width: 1px; word-wrap: break-word;"><code class=3D"prettyprint=
" style=3D""><div class=3D"subprettyprint" style=3D""><b><span style=3D"bac=
kground-color: rgb(250, 250, 250);" class=3D"styled-by-prettify"><font colo=
r=3D"#4c1130" style=3D"font-family: &quot;courier new&quot;, monospace;">=
=C2=A0</font></span></b><b style=3D"font-family: &quot;courier new&quot;, m=
onospace;"><font color=3D"#ffffff" style=3D"background-color: rgb(68, 68, 6=
8);">-</font></b><b><span style=3D"background-color: rgb(250, 250, 250);" c=
lass=3D"styled-by-prettify"><font color=3D"#000000" style=3D"" face=3D"aria=
l, sans-serif">|</font><font color=3D"#4c1130" style=3D"font-family: &quot;=
courier new&quot;, monospace;">=C2=A0</font></span><span style=3D"font-fami=
ly: &quot;courier new&quot;, monospace; background-color: rgb(250, 250, 250=
);" class=3D"styled-by-prettify"><font color=3D"#741b47">#ifndef</font></sp=
an><span style=3D"font-family: &quot;courier new&quot;, monospace; color: r=
gb(255, 0, 0); background-color: rgb(250, 250, 250);" class=3D"styled-by-pr=
ettify"> </span><span style=3D"font-family: &quot;courier new&quot;, monosp=
ace; background-color: rgb(250, 250, 250); color: rgb(0, 0, 0);" class=3D"s=
tyled-by-prettify">FILE_H_INCLUDED<br></span><span style=3D"background-colo=
r: rgb(250, 250, 250);" class=3D"styled-by-prettify"><font color=3D"#880000=
" style=3D"font-family: &quot;courier new&quot;, monospace;">=C2=A0=C2=A0</=
font><font color=3D"#000000" style=3D"" face=3D"arial, sans-serif">|</font>=
<font color=3D"#880000" style=3D"font-family: &quot;courier new&quot;, mono=
space;"> #define</font></span></b><span style=3D"background-color: rgb(250,=
 250, 250);" class=3D"styled-by-prettify"><b> <span style=3D"font-family: &=
quot;courier new&quot;, monospace; color: rgb(0, 0, 0);">FILE_H_INCLIDED<br=
></span></b><font color=3D"#000000" style=3D"font-family: &quot;courier new=
&quot;, monospace;">=C2=A0=C2=A0</font><b><font color=3D"#000000" face=3D"a=
rial, sans-serif">|</font></b><font color=3D"#000000" style=3D"font-family:=
 &quot;courier new&quot;, monospace;">=C2=A0</font><b><span style=3D"font-f=
amily: &quot;courier new&quot;, monospace; color: rgb(0, 0, 0);"><br></span=
></b><font color=3D"#000000" style=3D"font-family: &quot;courier new&quot;,=
 monospace;">=C2=A0=C2=A0</font><b><font color=3D"#000000" face=3D"arial, s=
ans-serif">|</font></b><font style=3D"font-family: &quot;courier new&quot;,=
 monospace;"><font color=3D"#000000">=C2=A0</font><b style=3D""><font color=
=3D"#000000">#pragma region (disable:</font><font color=3D"#ff0000">comment=
s</font><font color=3D"#000000">) // This disables comments from being coll=
apsed</font></b></font><br><font color=3D"#000000" style=3D"font-family: &q=
uot;courier new&quot;, monospace;">=C2=A0=C2=A0</font><b style=3D""><font c=
olor=3D"#000000" style=3D"" face=3D"arial, sans-serif">|</font></b><font co=
lor=3D"#000000" style=3D"font-family: &quot;courier new&quot;, monospace;">=
=C2=A0<br></font><font color=3D"#000000" style=3D"font-family: &quot;courie=
r new&quot;, monospace;">=C2=A0</font></span><b style=3D"font-family: &quot=
;courier new&quot;, monospace;"><font color=3D"#ffffff" style=3D"background=
-color: rgb(68, 68, 68);">-</font></b><b style=3D"font-family: Arial, Helve=
tica, sans-serif;"><font color=3D"#000000" face=3D"arial, sans-serif">|</fo=
nt></b><font color=3D"#000000" style=3D"font-family: &quot;courier new&quot=
;, monospace;">=C2=A0</font><font style=3D"font-family: &quot;courier new&q=
uot;, monospace;" color=3D"#666666"><b style=3D"">// Node comment (not coll=
apsed on CTRL-M)</b></font></div><div class=3D"subprettyprint" style=3D""><=
span style=3D"" class=3D"styled-by-prettify"><b style=3D"font-family: &quot=
;courier new&quot;, monospace;"><font color=3D"#ffffff" style=3D"background=
-color: rgb(255, 255, 255);">=C2=A0</font><font color=3D"#ffffff" style=3D"=
background-color: rgb(68, 68, 68);">+</font></b><b style=3D"background-colo=
r: rgb(250, 250, 250);"><font color=3D"#000000" style=3D"" face=3D"arial, s=
ans-serif">|</font></b><span style=3D"font-family: &quot;courier new&quot;,=
 monospace; color: rgb(0, 0, 136); background-color: rgb(250, 250, 250);">=
=C2=A0<b>struct</b></span></span><b><span style=3D"font-family: &quot;couri=
er new&quot;, monospace; background-color: rgb(250, 250, 250); color: rgb(0=
, 0, 0);" class=3D"styled-by-prettify"> </span><span style=3D"font-family: =
&quot;courier new&quot;, monospace; background-color: rgb(250, 250, 250); c=
olor: rgb(102, 0, 102);" class=3D"styled-by-prettify">Node</span></b><span =
style=3D"font-family: &quot;courier new&quot;, monospace; color: rgb(0, 0, =
0); background-color: rgb(250, 250, 250);" class=3D"styled-by-prettify">=C2=
=A0</span><span style=3D"background-color: rgb(0, 0, 0);" class=3D"styled-b=
y-prettify"><b style=3D""><font color=3D"#ffffff" style=3D"" face=3D"verdan=
a, sans-serif" size=3D"2">=C2=A0{=C2=A0 ...=C2=A0 }</font><font color=3D"#f=
fffff" style=3D"" face=3D"times new roman, serif" size=3D"4">=C2=A0</font><=
/b></span><br></div><div class=3D"subprettyprint" style=3D""><span style=3D=
"" class=3D"styled-by-prettify"><font color=3D"#000000" style=3D"background=
-color: rgb(250, 250, 250); font-family: &quot;courier new&quot;, monospace=
;">=C2=A0=C2=A0</font><b style=3D"background-color: rgb(250, 250, 250);"><f=
ont color=3D"#000000" style=3D"" face=3D"arial, sans-serif">|</font></b><fo=
nt color=3D"#880000" style=3D"background-color: rgb(250, 250, 250); font-fa=
mily: &quot;courier new&quot;, monospace;">=C2=A0<br></font><span class=3D"=
styled-by-prettify" style=3D"background-color: rgb(250, 250, 250);"><font c=
olor=3D"#000000" style=3D"font-family: &quot;courier new&quot;, monospace;"=
>=C2=A0</font></span></span><b style=3D"font-family: &quot;courier new&quot=
;, monospace;"><font color=3D"#ffffff" style=3D"background-color: rgb(68, 6=
8, 68);">-</font></b><b style=3D"font-family: Arial, Helvetica, sans-serif;=
"><font color=3D"#000000" face=3D"arial, sans-serif">|</font></b><font colo=
r=3D"#000000" style=3D"font-family: &quot;courier new&quot;, monospace;">=
=C2=A0</font><font style=3D"font-family: &quot;courier new&quot;, monospace=
;" color=3D"#666666"><b style=3D"">/* Table Multi-line comment</b></font></=
div><div class=3D"subprettyprint" style=3D""><span style=3D"" class=3D"styl=
ed-by-prettify"><span class=3D"styled-by-prettify" style=3D"background-colo=
r: rgb(250, 250, 250);"><font color=3D"#444444" style=3D"font-family: &quot=
;courier new&quot;, monospace;"><b>=C2=A0=C2=A0</b></font></span></span><b =
style=3D"font-family: Arial, Helvetica, sans-serif;"><font color=3D"#000000=
" face=3D"arial, sans-serif">|</font></b><span style=3D"background-color: r=
gb(250, 250, 250); color: rgb(0, 0, 0); font-family: &quot;courier new&quot=
;, monospace;">=C2=A0</span><span style=3D"background-color: rgb(250, 250, =
250); color: rgb(0, 0, 0); font-family: &quot;courier new&quot;, monospace;=
">=C2=A0</span><span style=3D"background-color: rgb(250, 250, 250); color: =
rgb(0, 0, 0); font-family: &quot;courier new&quot;, monospace;">=C2=A0</spa=
n><font color=3D"#666666"><span style=3D"background-color: rgb(250, 250, 25=
0); font-family: &quot;courier new&quot;, monospace;">=C2=A0</span><b style=
=3D"font-family: &quot;courier new&quot;, monospace;">(not collapsed on CTR=
L-M)</b><b style=3D"font-family: &quot;courier new&quot;, monospace;">=C2=
=A0=C2=A0</b><b style=3D"font-family: &quot;courier new&quot;, monospace; b=
ackground-color: rgb(250, 250, 250);">*/</b></font></div><div class=3D"subp=
rettyprint" style=3D""><span style=3D"" class=3D"styled-by-prettify"><span =
class=3D"styled-by-prettify" style=3D""><b style=3D"font-family: &quot;cour=
ier new&quot;, monospace;"><font color=3D"#ffffff" style=3D"background-colo=
r: rgb(255, 255, 255);">=C2=A0</font><font color=3D"#ffffff" style=3D"backg=
round-color: rgb(68, 68, 68);">+</font></b><b style=3D"background-color: rg=
b(250, 250, 250);"><font color=3D"#000000" face=3D"arial, sans-serif">|</fo=
nt></b><span style=3D"background-color: rgb(250, 250, 250); font-family: &q=
uot;courier new&quot;, monospace; color: rgb(0, 0, 136);">=C2=A0<b>struct</=
b></span></span><b><span class=3D"styled-by-prettify" style=3D"background-c=
olor: rgb(250, 250, 250); font-family: &quot;courier new&quot;, monospace; =
color: rgb(0, 0, 0);">=C2=A0</span><span class=3D"styled-by-prettify" style=
=3D"background-color: rgb(250, 250, 250); font-family: &quot;courier new&qu=
ot;, monospace; color: rgb(102, 0, 102);">Table</span></b><span class=3D"st=
yled-by-prettify" style=3D"background-color: rgb(250, 250, 250); font-famil=
y: &quot;courier new&quot;, monospace; color: rgb(0, 0, 0);">=C2=A0</span><=
span class=3D"styled-by-prettify" style=3D"background-color: rgb(0, 0, 0);"=
><b><font color=3D"#ffffff" face=3D"verdana, sans-serif" size=3D"2">=C2=A0{=
=C2=A0 ...=C2=A0 }</font><font color=3D"#ffffff" face=3D"times new roman, s=
erif" size=3D"4">=C2=A0<br></font></b></span><font color=3D"#000000" style=
=3D"background-color: rgb(250, 250, 250); font-family: &quot;courier new&qu=
ot;, monospace;">=C2=A0=C2=A0</font><b style=3D"background-color: rgb(250, =
250, 250);"><font color=3D"#000000" face=3D"arial, sans-serif">|</font></b>=
<font color=3D"#880000" style=3D"background-color: rgb(250, 250, 250); font=
-family: &quot;courier new&quot;, monospace;">=C2=A0<br></font><font color=
=3D"#000000" style=3D"background-color: rgb(250, 250, 250); font-family: &q=
uot;courier new&quot;, monospace;">=C2=A0=C2=A0</font><b style=3D"backgroun=
d-color: rgb(250, 250, 250);"><font color=3D"#000000" face=3D"arial, sans-s=
erif">|</font></b><font color=3D"#880000" style=3D"background-color: rgb(25=
0, 250, 250); font-family: &quot;courier new&quot;, monospace;">=C2=A0</fon=
t><font style=3D"background-color: rgb(250, 250, 250); font-family: &quot;c=
ourier new&quot;, monospace;"><font color=3D"#000000"><b>#pragma endregion =
// Pop back to previous state</b></font><br></font><font color=3D"#000000" =
style=3D"background-color: rgb(250, 250, 250); font-family: &quot;courier n=
ew&quot;, monospace;">=C2=A0=C2=A0</font><b style=3D"background-color: rgb(=
250, 250, 250);"><font color=3D"#000000" face=3D"arial, sans-serif">|</font=
></b><font color=3D"#880000" style=3D"background-color: rgb(250, 250, 250);=
 font-family: &quot;courier new&quot;, monospace;">=C2=A0</font><br></span>=
<span style=3D"background-color: rgb(250, 250, 250);" class=3D"styled-by-pr=
ettify"><font color=3D"#741b47"><font style=3D"font-family: &quot;courier n=
ew&quot;, monospace;">=C2=A0=C2=A0</font><b style=3D""><font style=3D"" fac=
e=3D"arial, sans-serif">|</font></b><font style=3D"font-family: &quot;couri=
er new&quot;, monospace;"> <b style=3D"">#endif</b></font></font></span></d=
iv></code></div><div><br><font face=3D"courier new, monospace"><b><br></b><=
/font></div><div><font face=3D"courier new, monospace"><b>CTRL-M</b> simply=
 collapses every single collapse block, regardless of context.</font></div>=
<div><span style=3D"font-family: &quot;courier new&quot;, monospace;">It wo=
uld be nice to be able to force=C2=A0</span><span style=3D"font-family: &qu=
ot;courier new&quot;, monospace;">any region of code to be strictly non-</s=
pan></div><div><span style=3D"font-family: &quot;courier new&quot;, monospa=
ce;">collapsible</span><span style=3D"font-family: &quot;courier new&quot;,=
 monospace;">, such as vital comments,=C2=A0</span><span style=3D"font-fami=
ly: &quot;courier new&quot;, monospace;">#include&#39;s, and huge blocks wh=
ich occur</span></div><div><span style=3D"font-family: &quot;courier new&qu=
ot;, monospace;">naturally with header guards.</span></div><div><font face=
=3D"courier new, monospace"><br></font></div><div><font face=3D"courier new=
, monospace">These are some features which I would like to see implemented,=
 for the sake</font></div><div><font face=3D"courier new, monospace">of mai=
ntainability and programming efficiency:</font></div></div></div><div><font=
 face=3D"courier new, monospace"><br></font></div><div class=3D"prettyprint=
" style=3D"background-color: rgb(250, 250, 250); border-color: rgb(187, 187=
, 187); border-style: solid; border-width: 1px; word-wrap: break-word;"><co=
de class=3D"prettyprint"><div class=3D"subprettyprint"><span style=3D"color=
: rgb(136, 0, 0);" class=3D"styled-by-prettify">#pragma</span><span style=
=3D"color: rgb(0, 0, 0);" class=3D"styled-by-prettify"> </span><span style=
=3D"" class=3D"styled-by-prettify"><font color=3D"#000000">region</font></s=
pan><span style=3D"color: rgb(0, 0, 0);" class=3D"styled-by-prettify"> </sp=
an><span style=3D"color: rgb(102, 102, 0);" class=3D"styled-by-prettify">(<=
/span><span style=3D"color: rgb(0, 0, 0);" class=3D"styled-by-prettify"><b>=
disable</b></span><span style=3D"color: rgb(102, 102, 0);" class=3D"styled-=
by-prettify">:</span><span style=3D"" class=3D"styled-by-prettify"><font co=
lor=3D"#ff0000">comments</font></span><span style=3D"color: rgb(102, 102, 0=
);" class=3D"styled-by-prettify">)</span><span style=3D"color: rgb(0, 0, 0)=
;" class=3D"styled-by-prettify"> =C2=A0 </span><span style=3D"" class=3D"st=
yled-by-prettify"><font color=3D"#666666">// Prevent both single and multi-=
line comments from being collapsible.</font></span><span style=3D"color: rg=
b(0, 0, 0);" class=3D"styled-by-prettify"><br></span><span style=3D"color: =
rgb(136, 0, 0);" class=3D"styled-by-prettify">#pragma</span><span style=3D"=
color: rgb(0, 0, 0);" class=3D"styled-by-prettify"> region </span><span sty=
le=3D"color: rgb(102, 102, 0);" class=3D"styled-by-prettify">(</span><span =
style=3D"color: rgb(0, 0, 0);" class=3D"styled-by-prettify"><b>disable</b><=
/span><span style=3D"color: rgb(102, 102, 0);" class=3D"styled-by-prettify"=
>:</span><span style=3D"" class=3D"styled-by-prettify"><font color=3D"#ff00=
00">includes</font></span><span style=3D"color: rgb(102, 102, 0);" class=3D=
"styled-by-prettify">)</span><span style=3D"color: rgb(0, 0, 0);" class=3D"=
styled-by-prettify"> =C2=A0 </span><span style=3D"" class=3D"styled-by-pret=
tify"><font color=3D"#666666">// Prevent #include&#39;s from being collapsi=
ble.</font></span><span style=3D"color: rgb(0, 0, 0);" class=3D"styled-by-p=
rettify"><br></span><span style=3D"color: rgb(136, 0, 0);" class=3D"styled-=
by-prettify">#pragma</span><span style=3D"color: rgb(0, 0, 0);" class=3D"st=
yled-by-prettify"> region </span><span style=3D"color: rgb(102, 102, 0);" c=
lass=3D"styled-by-prettify">(</span><span style=3D"color: rgb(0, 0, 0);" cl=
ass=3D"styled-by-prettify"><b>disable</b></span><span style=3D"color: rgb(1=
02, 102, 0);" class=3D"styled-by-prettify">:</span><span style=3D"" class=
=3D"styled-by-prettify"><font color=3D"#ff0000">scopes</font></span><span s=
tyle=3D"color: rgb(102, 102, 0);" class=3D"styled-by-prettify">)</span><spa=
n style=3D"color: rgb(0, 0, 0);" class=3D"styled-by-prettify"> =C2=A0 =C2=
=A0 </span><span style=3D"" class=3D"styled-by-prettify"><font color=3D"#66=
6666">// Prevent scopes within a function being collapsible.</font></span><=
span style=3D"color: rgb(0, 0, 0);" class=3D"styled-by-prettify"><br><br><b=
r></span><span style=3D"color: rgb(136, 0, 0);" class=3D"styled-by-prettify=
">#pragma</span><span style=3D"color: rgb(0, 0, 0);" class=3D"styled-by-pre=
ttify"> endregion </span><span style=3D"color: rgb(136, 0, 0);" class=3D"st=
yled-by-prettify">// scopes</span><span style=3D"color: rgb(0, 0, 0);" clas=
s=3D"styled-by-prettify"><br></span><span style=3D"color: rgb(136, 0, 0);" =
class=3D"styled-by-prettify">#pragma</span><span style=3D"color: rgb(0, 0, =
0);" class=3D"styled-by-prettify"> endregion </span><span style=3D"color: r=
gb(136, 0, 0);" class=3D"styled-by-prettify">// includes</span><span style=
=3D"color: rgb(0, 0, 0);" class=3D"styled-by-prettify"><br></span><span sty=
le=3D"color: rgb(136, 0, 0);" class=3D"styled-by-prettify">#pragma</span><s=
pan style=3D"color: rgb(0, 0, 0);" class=3D"styled-by-prettify"> endregion =
</span><span style=3D"color: rgb(136, 0, 0);" class=3D"styled-by-prettify">=
// comments</span></div></code></div><div><b style=3D"color: rgb(0, 0, 0); =
font-family: &quot;courier new&quot;, monospace; background-color: rgb(250,=
 250, 250);"><br></b><b style=3D"color: rgb(0, 0, 0); font-family: &quot;co=
urier new&quot;, monospace; background-color: rgb(250, 250, 250);"><br></b>=
</div><div><b style=3D"color: rgb(0, 0, 0); font-family: &quot;courier new&=
quot;, monospace; background-color: rgb(250, 250, 250);"><br></b></div><div=
>And also sometime like:</div><div><br></div><div class=3D"prettyprint" sty=
le=3D"background-color: rgb(250, 250, 250); border-color: rgb(187, 187, 187=
); border-style: solid; border-width: 1px; word-wrap: break-word;"><code cl=
ass=3D"prettyprint"><div class=3D"subprettyprint"><b><span style=3D"color: =
#800;" class=3D"styled-by-prettify">#pragma</span><span style=3D"color: #00=
0;" class=3D"styled-by-prettify"> region </span><span style=3D"color: #660;=
" class=3D"styled-by-prettify">(</span><span style=3D"color: #000;" class=
=3D"styled-by-prettify">disable</span><span style=3D"color: #660;" class=3D=
"styled-by-prettify">:</span><span style=3D"" class=3D"styled-by-prettify">=
<font color=3D"#ff0000">all</font></span><span style=3D"color: #660;" class=
=3D"styled-by-prettify">)</span><span style=3D"color: #000;" class=3D"style=
d-by-prettify"><br><br></span></b><span style=3D"" class=3D"styled-by-prett=
ify"><b><font color=3D"#880000">// *All* collapsible regions disabled (comm=
ents, includes, function scopes, etc..)</font><br><br><span class=3D"styled=
-by-prettify" style=3D"color: rgb(136, 0, 0);">#pragma</span><span class=3D=
"styled-by-prettify" style=3D"color: rgb(0, 0, 0);">=C2=A0endregion </span>=
<span class=3D"styled-by-prettify" style=3D""><font color=3D"#741b47">// Al=
l</font></span></b><br></span></div></code></div><div><b style=3D"font-fami=
ly: &quot;courier new&quot;, monospace; background-color: rgb(250, 250, 250=
);"><font color=3D"#000000"><br></font></b></div><div><b style=3D"font-fami=
ly: &quot;courier new&quot;, monospace; background-color: rgb(250, 250, 250=
);"><font color=3D"#000000"><br></font></b></div><div><font color=3D"#00000=
0" face=3D"courier new, monospace"><span style=3D"background-color: rgb(250=
, 250, 250);">Is anything like this currently possible? If not, myself=C2=
=A0</span></font><span style=3D"color: rgb(0, 0, 0); font-family: &quot;cou=
rier new&quot;, monospace;">(any probably many others)=C2=A0</span><span st=
yle=3D"color: rgb(0, 0, 0); font-family: &quot;courier new&quot;, monospace=
;">would greatly appreciate this feature in the next update.</span></div><d=
iv><span style=3D"color: rgb(0, 0, 0); font-family: &quot;courier new&quot;=
, monospace;"><br></span></div><div><span style=3D"color: rgb(0, 0, 0); fon=
t-family: &quot;courier new&quot;, monospace;">Kind Regards,</span></div><d=
iv><span style=3D"color: rgb(0, 0, 0); font-family: &quot;courier new&quot;=
, monospace;">William Hemsworth</span></div></div>

<p></p>

-- <br />
You received this message because you are subscribed to the Google Groups &=
quot;ISO C++ Standard - Future Proposals&quot; group.<br />
To unsubscribe from this group and stop receiving emails from it, send an e=
mail to <a href=3D"mailto:std-proposals+unsubscribe@isocpp.org">std-proposa=
ls+unsubscribe@isocpp.org</a>.<br />
To post to this group, send email to <a href=3D"mailto:std-proposals@isocpp=
..org">std-proposals@isocpp.org</a>.<br />
To view this discussion on the web visit <a href=3D"https://groups.google.c=
om/a/isocpp.org/d/msgid/std-proposals/e04f108e-9c60-4ee9-aac6-abfa5a583ce3%=
40isocpp.org?utm_medium=3Demail&utm_source=3Dfooter">https://groups.google.=
com/a/isocpp.org/d/msgid/std-proposals/e04f108e-9c60-4ee9-aac6-abfa5a583ce3=
%40isocpp.org</a>.<br />

------=_Part_7374_435929563.1513647521683--

------=_Part_7373_2135435319.1513647521682--

.
