From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Arthur Miller Newsgroups: gmane.emacs.devel Subject: Q: Invisible text spec + define minor mode macro Date: Wed, 21 Apr 2021 10:04:17 +0200 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="17189"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (windows-nt) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Apr 21 10:05:29 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lZ7rT-0004KY-M6 for ged-emacs-devel@m.gmane-mx.org; Wed, 21 Apr 2021 10:05:27 +0200 Original-Received: from localhost ([::1]:36698 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lZ7rS-0000xH-NV for ged-emacs-devel@m.gmane-mx.org; Wed, 21 Apr 2021 04:05:26 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:51614) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lZ7qU-0000WO-07 for emacs-devel@gnu.org; Wed, 21 Apr 2021 04:04:26 -0400 Original-Received: from mail-db8eur06olkn2063.outbound.protection.outlook.com ([40.92.51.63]:9185 helo=EUR06-DB8-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lZ7qO-0001M2-PQ for emacs-devel@gnu.org; Wed, 21 Apr 2021 04:04:25 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VN04kyabYcaIp+4em9rFaX6uXD9rOVTOPwsmqPdj/zOa3BLhQ39z+GnqoS7cC/Wh/cjLA0erlmCtrGRmSHe1CW+Ab8dYy4skaRcdJbla29nl2jvfhPm89DpZQcjTTryl6lNLHsnyqJn8FFCHvdMu0E9MzTSA8GBbDZ0O0E6tF9IvXXldFdZufP9RVaKOP+QnbgwO8zx6NOiJ23cmNjHvKGjx4ejUKaIIChasWiRYOuBwMUeWSGTRyQmgBYMB6ZIaO9u4oMlPqmbcQFtSy3vgwUo/ZERSFdzDsf8Pz8caJnWe3CkWsjerWkZEYj6rIUEYuTjACIM/J47ZoRk/MADKpA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nJXcBJ9OPCZJFnq54vt5nKR7vML3g4ZGk9tu315KbXo=; b=HgYniF8AQrw9Ry+pLxbN3z4/3a9JAXz+biRcADfa6DcGN5p3BVsWN3pfY3/WRBdWg9SqOWIyk0qvg/TeELB56JHsR/c+zucJ8GuiMlOmnR72yUFukqzvuKnn1T1BAnIZsUidOaw8OQVeWjt4oS8avsg1p7B9XMmjarfBvrPZ9cwEmaJDL8wiOEPUXEZZOkVXa5sftNYJbqEAEcIPeu0748Aut9+bFHy/NyEobb1njZFFuYFZhVC3DZrFm1Vtpw7KnBcfuqP8Tjw3npES3AoNsaiEupXVcYgxTRFjsoooDCox7WItRIaoWGx47tEe4AdzL9upX6y1V8lslkCD8ksMow== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nJXcBJ9OPCZJFnq54vt5nKR7vML3g4ZGk9tu315KbXo=; b=HQa6JkZIxJUhNqEEA1CATR235ylYNGJKd6Ffkj2NKKB4OPnK4bkUnOTqIEE9DfG/DukM6T9XiZNahD+WOl8dLASBlTTPojyIZEvh7/fTGAoCY0tPf858Hhi9KLYmJKA0vHyW/Edd7cMFmfr5ncE1tHSa5kwuH/zxrWzlcBOpcetbl+YId7UXCtPUMDbeaNkWMyEGovNfJ3gly7LGLCRus25g+paPTLpebSnWavZyO7TTzdH3HB3pN1UywoHQwjkR01nEaChVEtzfINRAiLdEvti1+kU4qIgTeK13fF+R0clhVLAlAORU0c/+j3zQGS0g9gmHoRj3q3vYnh6z1l1cAg== Original-Received: from AM7EUR06FT011.eop-eur06.prod.protection.outlook.com (2a01:111:e400:fc36::47) by AM7EUR06HT083.eop-eur06.prod.protection.outlook.com (2a01:111:e400:fc36::410) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.21; Wed, 21 Apr 2021 08:04:17 +0000 Original-Received: from AM9PR09MB4977.eurprd09.prod.outlook.com (2a01:111:e400:fc36::4c) by AM7EUR06FT011.mail.protection.outlook.com (2a01:111:e400:fc36::340) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.21 via Frontend Transport; Wed, 21 Apr 2021 08:04:17 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:FF9586AFF0EDAF35CF91DEA70048B51BCFC42C2469046BC2DA1644E1DF7C9EBA; UpperCasedChecksum:9D46AD076CA3CE06240ACEF04C5488483E1E5655409BB6B5883F9832DD44E900; SizeAsReceived:7237; Count:43 Original-Received: from AM9PR09MB4977.eurprd09.prod.outlook.com ([fe80::2103:e705:bc0c:5a8b]) by AM9PR09MB4977.eurprd09.prod.outlook.com ([fe80::2103:e705:bc0c:5a8b%6]) with mapi id 15.20.4042.024; Wed, 21 Apr 2021 08:04:17 +0000 X-TMN: [pvk4WwmNW5vWXcZ1fvrBT6fDrlcGr50U] X-ClientProxiedBy: AM6PR10CA0053.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:80::30) To AM9PR09MB4977.eurprd09.prod.outlook.com (2603:10a6:20b:304::20) X-Microsoft-Original-Message-ID: <82y2dcnjwe.fsf@live.com> X-MS-Exchange-MessageSentRepresentingType: 1 Original-Received: from HP-Laptop.homepc (81.232.177.30) by AM6PR10CA0053.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:80::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.21 via Frontend Transport; Wed, 21 Apr 2021 08:04:16 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 43 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 8e92b76d-b95c-44b6-8464-08d9049c0f76 X-MS-TrafficTypeDiagnostic: AM7EUR06HT083: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Esi+E6kQjR/HPapDEzWcITTaSJLX80oFyjM/QbHuLcgsSYBkhjYhXc4RJGr48YZIwLkiBINEfkHWqe446BICEpWbQBjd1PCzWCv3kX3xalzIyFDJCFg4NOo6Y94C+T0Pwr5Vy6Vl9IUze7XX0jmaMho0pxHJOzAdIq2UwfYaw2nTl4oxdp9dhY4d0UFhLHdY3ZDy1MBXf/TsWmW1AjVtEZvUhP0OC1YWUviBFKGkrO9D3XWCWReFX9Sdw8T0NstNRvtuB5PAWZqgH3RX3rPRcIIaokxWAOeEGHBcH2uKFBRFCiYTz/An9Mp6TG95yQiBpg8iuNbQAE2natwciWNFiHUfq51EN5xMvVxh9ollx96u2/bxIflzcOMcheKh6/zB X-MS-Exchange-AntiSpam-MessageData: pX6yyDAZwEFuwjO8K0b6Pc6nLVpdrkkjin7rgc1+SChyHgnJBC2PvBbSDXKaQBZVPF7wr33FcE5rBQnmk2Dt15rwtB0PSnZAKi3YxG32ZMjbX1R2rPAZCOQgvE+fbZ64zR+0ja5Kk7FV/9UOAdvtpg== X-OriginatorOrg: live.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8e92b76d-b95c-44b6-8464-08d9049c0f76 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Apr 2021 08:04:17.6334 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: AM7EUR06FT011.eop-eur06.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7EUR06HT083 Received-SPF: pass client-ip=40.92.51.63; envelope-from=arthur.miller@live.com; helo=EUR06-DB8-obe.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:268219 Archived-At: --=-=-= Content-Type: application/emacs-lisp Content-Disposition: attachment; filename=ob-hide-markers.el Content-Transfer-Encoding: quoted-printable ;;; ob-hide-markers.el --- Hide or-babel source code markers. -*- lexical-= binding: t; -*-=0D =0D ;; Copyright (C) 2021 Arthur Miller=0D =0D ;; Author: Arthur Miller =0D ;; Keywords: convenience, outlines, tools=0D =0D ;; This program is free software; you can redistribute it and/or modify=0D ;; it under the terms of the GNU General Public License as published by=0D ;; the Free Software Foundation, either version 3 of the License, or=0D ;; (at your option) any later version.=0D =0D ;; This program is distributed in the hope that it will be useful,=0D ;; but WITHOUT ANY WARRANTY; without even the implied warranty of=0D ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the=0D ;; GNU General Public License for more details.=0D =0D ;; You should have received a copy of the GNU General Public License=0D ;; along with this program. If not, see .= =0D =0D ;;; Commentary:=0D =0D ;; A minor mode to help reduce clutter in org-babel code blocks by=0D ;; hiding/unhiding markers for source code blocks in org-mode.=0D ;;=0D ;; To hide all markers turn on org-hbm-mode by=0D ;;=0D ;; `M-x org-hbm-mode.'=0D ;;=0D ;; To turn it off execute same command.=0D ;;=0D ;; The mode provides two additional interactive commands.=0D ;;=0D ;; Use `hbm-refresh' if you add new code blocks, copy-paste etc.=0D ;;=0D ;; Alternatively it is possible to turn on/off markers for an individual so= urce=0D ;; code by executing `M-x hbm-toggle-current-block'. It does not require=0D ;; org-hbm-mode to be on, but you will have to call it again to make marker= s=0D ;; visible again.=0D ;;=0D ;; It is possible to somewhat control the appereance of org-file by customi= zing=0D ;; the `orh-hbm-hide-marker-line' variable. When this variable is nil, mark= ers=0D ;; will be invisible but the newline character will be left visible resulti= ng in=0D ;; somewhat "fluffier" appereance. Whan the value is set to `t' even newlin= e=0D ;; character will be hidden resulting in more dense and compact code. That = might=0D ;; not be for everyone, so sett it to your own preference. It is `nil' by= =0D ;; default.=0D =0D ;;; Code:=0D (defcustom org-babel-hide-markers-line nil=0D "If value of this variable is `t', org-hbm mode vill hide also line on wh= ich=0D source code block markers are, otherwise only markers are hidden leaving = an=0D empty line."=0D :group 'org-babel=0D :tag "Org Babel Hide Source Block Markers Line")=0D =0D (setq hbm--src-marker-re "^[ \t]*#\\+\\(begin_src\\|end_src\\)")=0D =0D (defun hbm--update-line (visibility)=0D (let ((beg (if org-babel-hide-markers-line=0D (1- (line-beginning-position))=0D (line-beginning-position)))=0D (end (line-end-position)))=0D (put-text-property beg end 'invisible visibility)))=0D =0D (defun hbm--update-markers (visibile)=0D (save-excursion=0D (goto-char (point-min))=0D (with-silent-modifications=0D (while (re-search-forward hbm--src-marker-re nil t)=0D (hbm--update-line visibile))=0D (setq ob-hide-markers visibile))))=0D =0D ;;;###autoload=0D (define-minor-mode org-babel-hide-markers-mode=0D "Hide/show babel source code blocks on demand."=0D nil " OB Hmm" nil=0D (unless (derived-mode-p 'org-mode)=0D (error "Not in org-mode."))=0D (if org-babel-hide-markers-mode=0D (hbm--update-markers nil)=0D (hbm--update-markers t)))=0D =0D (provide 'ob-hide-markers)=0D =0D ;;; ob-hide-markers.el ends here=0D =0D --=-=-= Content-Type: text/x-org Content-Disposition: attachment; filename=test.org * Test ** Block 1 #+begin_src emacs-lisp #+end_src ** Block 2 #+begin_src emacs-lisp #+end_src ** Block 3 #+begin_src emacs-lisp #+end_src ** Block 4 #+begin_src emacs-lisp #+end_src ** Block 5 #+begin_src emacs-lisp #+end_src ** Block 6 #+begin_src emacs-lisp #+end_src ** Block 7 #+begin_src emacs-lisp #+end_src ** Block 8 #+begin_src emacs-lisp #+end_src ** Block 9 #+begin_src emacs-lisp #+end_src ** Block 10 #+begin_src emacs-lisp #+end_src ** Block 11 #+begin_src emacs-lisp #+end_src ** Block 12 #+begin_src emacs-lisp #+end_src ** Block 13 #+begin_src emacs-lisp #+end_src ** Block 14 #+begin_src emacs-lisp #+end_src ** Block 15 #+begin_src emacs-lisp #+end_src ** Block 16 #+begin_src emacs-lisp #+end_src ** Block 17 #+begin_src emacs-lisp #+end_src ** Block 18 #+begin_src emacs-lisp #+end_src ** Block 19 #+begin_src emacs-lisp #+end_src ** Block 20 #+begin_src emacs-lisp #+end_src ** Block 21 #+begin_src emacs-lisp #+end_src ** Block 22 #+begin_src emacs-lisp #+end_src ** Block 23 #+begin_src emacs-lisp #+end_src ** Block 24 #+begin_src emacs-lisp #+end_src ** Block 25 #+begin_src emacs-lisp #+end_src ** Block 26 #+begin_src emacs-lisp #+end_src ** Block 27 #+begin_src emacs-lisp #+end_src ** Block 28 #+begin_src emacs-lisp #+end_src ** Block 29 #+begin_src emacs-lisp #+end_src ** Block 30 #+begin_src emacs-lisp #+end_src ** Block 31 #+begin_src emacs-lisp #+end_src ** Block 32 #+begin_src emacs-lisp #+end_src ** Block 33 #+begin_src emacs-lisp #+end_src ** Block 34 #+begin_src emacs-lisp #+end_src ** Block 35 #+begin_src emacs-lisp #+end_src ** Block 36 #+begin_src emacs-lisp #+end_src ** Block 37 #+begin_src emacs-lisp #+end_src ** Block 38 #+begin_src emacs-lisp #+end_src ** Block 39 #+begin_src emacs-lisp #+end_src ** Block 40 #+begin_src emacs-lisp #+end_src ** Block 41 #+begin_src emacs-lisp #+end_src ** Block 42 #+begin_src emacs-lisp #+end_src ** Block 43 #+begin_src emacs-lisp #+end_src ** Block 44 #+begin_src emacs-lisp #+end_src ** Block 45 #+begin_src emacs-lisp #+end_src ** Block 46 #+begin_src emacs-lisp #+end_src ** Block 47 #+begin_src emacs-lisp #+end_src ** Block 48 #+begin_src emacs-lisp #+end_src ** Block 49 #+begin_src emacs-lisp #+end_src ** Block 50 #+begin_src emacs-lisp #+end_src ** Block 51 #+begin_src emacs-lisp #+end_src ** Block 52 #+begin_src emacs-lisp #+end_src ** Block 53 #+begin_src emacs-lisp #+end_src ** Block 54 #+begin_src emacs-lisp #+end_src ** Block 55 #+begin_src emacs-lisp #+end_src ** Block 56 #+begin_src emacs-lisp #+end_src ** Block 57 #+begin_src emacs-lisp #+end_src ** Block 58 #+begin_src emacs-lisp #+end_src ** Block 59 #+begin_src emacs-lisp #+end_src ** Block 60 #+begin_src emacs-lisp #+end_src ** Block 61 #+begin_src emacs-lisp #+end_src ** Block 62 #+begin_src emacs-lisp #+end_src ** Block 63 #+begin_src emacs-lisp #+end_src ** Block 64 #+begin_src emacs-lisp #+end_src ** Block 65 #+begin_src emacs-lisp #+end_src ** Block 66 #+begin_src emacs-lisp #+end_src ** Block 67 #+begin_src emacs-lisp #+end_src ** Block 68 #+begin_src emacs-lisp #+end_src ** Block 69 #+begin_src emacs-lisp #+end_src ** Block 70 #+begin_src emacs-lisp #+end_src ** Block 71 #+begin_src emacs-lisp #+end_src ** Block 72 #+begin_src emacs-lisp #+end_src ** Block 73 #+begin_src emacs-lisp #+end_src ** Block 74 #+begin_src emacs-lisp #+end_src ** Block 75 #+begin_src emacs-lisp #+end_src ** Block 76 #+begin_src emacs-lisp #+end_src ** Block 77 #+begin_src emacs-lisp #+end_src ** Block 78 #+begin_src emacs-lisp #+end_src ** Block 79 #+begin_src emacs-lisp #+end_src ** Block 80 #+begin_src emacs-lisp #+end_src ** Block 81 #+begin_src emacs-lisp #+end_src ** Block 82 #+begin_src emacs-lisp #+end_src ** Block 83 #+begin_src emacs-lisp #+end_src ** Block 84 #+begin_src emacs-lisp #+end_src ** Block 85 #+begin_src emacs-lisp #+end_src ** Block 86 #+begin_src emacs-lisp #+end_src ** Block 87 #+begin_src emacs-lisp #+end_src ** Block 88 #+begin_src emacs-lisp #+end_src ** Block 89 #+begin_src emacs-lisp #+end_src ** Block 90 #+begin_src emacs-lisp #+end_src ** Block 91 #+begin_src emacs-lisp #+end_src ** Block 92 #+begin_src emacs-lisp #+end_src ** Block 93 #+begin_src emacs-lisp #+end_src ** Block 94 #+begin_src emacs-lisp #+end_src ** Block 95 #+begin_src emacs-lisp #+end_src ** Block 96 #+begin_src emacs-lisp #+end_src ** Block 97 #+begin_src emacs-lisp #+end_src ** Block 98 #+begin_src emacs-lisp #+end_src ** Block 99 #+begin_src emacs-lisp #+end_src ** Block 100 #+begin_src emacs-lisp #+end_src ** Block 101 #+begin_src emacs-lisp #+end_src ** Block 102 #+begin_src emacs-lisp #+end_src ** Block 103 #+begin_src emacs-lisp #+end_src ** Block 104 #+begin_src emacs-lisp #+end_src ** Block 105 #+begin_src emacs-lisp #+end_src ** Block 106 #+begin_src emacs-lisp #+end_src ** Block 107 #+begin_src emacs-lisp #+end_src ** Block 108 #+begin_src emacs-lisp #+end_src ** Block 109 #+begin_src emacs-lisp #+end_src ** Block 110 #+begin_src emacs-lisp #+end_src ** Block 111 #+begin_src emacs-lisp #+end_src ** Block 112 #+begin_src emacs-lisp #+end_src ** Block 113 #+begin_src emacs-lisp #+end_src ** Block 114 #+begin_src emacs-lisp #+end_src ** Block 115 #+begin_src emacs-lisp #+end_src ** Block 116 #+begin_src emacs-lisp #+end_src ** Block 117 #+begin_src emacs-lisp #+end_src ** Block 118 #+begin_src emacs-lisp #+end_src ** Block 119 #+begin_src emacs-lisp #+end_src ** Block 120 #+begin_src emacs-lisp #+end_src ** Block 121 #+begin_src emacs-lisp #+end_src ** Block 122 #+begin_src emacs-lisp #+end_src ** Block 123 #+begin_src emacs-lisp #+end_src ** Block 124 #+begin_src emacs-lisp #+end_src ** Block 125 #+begin_src emacs-lisp #+end_src ** Block 126 #+begin_src emacs-lisp #+end_src ** Block 127 #+begin_src emacs-lisp #+end_src ** Block 128 #+begin_src emacs-lisp #+end_src ** Block 129 #+begin_src emacs-lisp #+end_src ** Block 130 #+begin_src emacs-lisp #+end_src ** Block 131 #+begin_src emacs-lisp #+end_src ** Block 132 #+begin_src emacs-lisp #+end_src ** Block 133 #+begin_src emacs-lisp #+end_src ** Block 134 #+begin_src emacs-lisp #+end_src ** Block 135 #+begin_src emacs-lisp #+end_src ** Block 136 #+begin_src emacs-lisp #+end_src ** Block 137 #+begin_src emacs-lisp #+end_src ** Block 138 #+begin_src emacs-lisp #+end_src ** Block 139 #+begin_src emacs-lisp #+end_src ** Block 140 #+begin_src emacs-lisp #+end_src ** Block 141 #+begin_src emacs-lisp #+end_src ** Block 142 #+begin_src emacs-lisp #+end_src ** Block 143 #+begin_src emacs-lisp #+end_src ** Block 144 #+begin_src emacs-lisp #+end_src ** Block 145 #+begin_src emacs-lisp #+end_src ** Block 146 #+begin_src emacs-lisp #+end_src ** Block 147 #+begin_src emacs-lisp #+end_src ** Block 148 #+begin_src emacs-lisp #+end_src ** Block 149 #+begin_src emacs-lisp #+end_src ** Block 150 #+begin_src emacs-lisp #+end_src ** Block 151 #+begin_src emacs-lisp #+end_src ** Block 152 #+begin_src emacs-lisp #+end_src ** Block 153 #+begin_src emacs-lisp #+end_src ** Block 154 #+begin_src emacs-lisp #+end_src ** Block 155 #+begin_src emacs-lisp #+end_src ** Block 156 #+begin_src emacs-lisp #+end_src ** Block 157 #+begin_src emacs-lisp #+end_src ** Block 158 #+begin_src emacs-lisp #+end_src ** Block 159 #+begin_src emacs-lisp #+end_src ** Block 160 #+begin_src emacs-lisp #+end_src ** Block 161 #+begin_src emacs-lisp #+end_src ** Block 162 #+begin_src emacs-lisp #+end_src ** Block 163 #+begin_src emacs-lisp #+end_src ** Block 164 #+begin_src emacs-lisp #+end_src ** Block 165 #+begin_src emacs-lisp #+end_src ** Block 166 #+begin_src emacs-lisp #+end_src ** Block 167 #+begin_src emacs-lisp #+end_src ** Block 168 #+begin_src emacs-lisp #+end_src ** Block 169 #+begin_src emacs-lisp #+end_src ** Block 170 #+begin_src emacs-lisp #+end_src ** Block 171 #+begin_src emacs-lisp #+end_src ** Block 172 #+begin_src emacs-lisp #+end_src ** Block 173 #+begin_src emacs-lisp #+end_src ** Block 174 #+begin_src emacs-lisp #+end_src ** Block 175 #+begin_src emacs-lisp #+end_src ** Block 176 #+begin_src emacs-lisp #+end_src ** Block 177 #+begin_src emacs-lisp #+end_src ** Block 178 #+begin_src emacs-lisp #+end_src ** Block 179 #+begin_src emacs-lisp #+end_src ** Block 180 #+begin_src emacs-lisp #+end_src ** Block 181 #+begin_src emacs-lisp #+end_src ** Block 182 #+begin_src emacs-lisp #+end_src ** Block 183 #+begin_src emacs-lisp #+end_src ** Block 184 #+begin_src emacs-lisp #+end_src ** Block 185 #+begin_src emacs-lisp #+end_src ** Block 186 #+begin_src emacs-lisp #+end_src ** Block 187 #+begin_src emacs-lisp #+end_src ** Block 188 #+begin_src emacs-lisp #+end_src ** Block 189 #+begin_src emacs-lisp #+end_src ** Block 190 #+begin_src emacs-lisp #+end_src ** Block 191 #+begin_src emacs-lisp #+end_src ** Block 192 #+begin_src emacs-lisp #+end_src ** Block 193 #+begin_src emacs-lisp #+end_src ** Block 194 #+begin_src emacs-lisp #+end_src ** Block 195 #+begin_src emacs-lisp #+end_src ** Block 196 #+begin_src emacs-lisp #+end_src ** Block 197 #+begin_src emacs-lisp #+end_src ** Block 198 #+begin_src emacs-lisp #+end_src ** Block 199 #+begin_src emacs-lisp #+end_src ** Block 200 #+begin_src emacs-lisp #+end_src --=-=-= Content-Type: text/plain I am not sure what is going on here. I have this minor mode defined, as shown yesterday, where I just iterate through a buffer and try to make certain lines invisible. It seems that visibility property updates only for about 2 ~ 3 pages of text. When I bring text into visible portion of screen and re-run the mode, it is updated as it should. Does it have to do something with how invisible text is rendered? I think it shouldn't but I don't understand what is going on here? The search seems to properly find all src markers in entire buffer, and all lines are "equal" (machine generated), so there is no reason why some parts should work and others dont. Another issue is with minor mode definition. I am trying to use mode-variable to toggle on/off as I understand the docs it should be used, but I have to call it twice in org file. Do I need to use another boolean value to check on, or could I use mode-variable for this purpose? I thought it was ment for this. --=-=-=--