From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id QE5GNWQm9WFbZgEAgWs5BA (envelope-from ) for ; Sat, 29 Jan 2022 12:35:00 +0100 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id sLd0MmQm9WHYNQEA9RJhRA (envelope-from ) for ; Sat, 29 Jan 2022 12:35:00 +0100 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 5CDD228ED0 for ; Sat, 29 Jan 2022 12:35:00 +0100 (CET) Received: from localhost ([::1]:60818 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nDm0R-0000oC-Gx for larch@yhetil.org; Sat, 29 Jan 2022 06:34:59 -0500 Received: from eggs.gnu.org ([209.51.188.92]:58084) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nDlzX-0000o4-Jc for emacs-orgmode@gnu.org; Sat, 29 Jan 2022 06:34:03 -0500 Received: from [2607:f8b0:4864:20::1033] (port=37884 helo=mail-pj1-x1033.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nDlzV-0008T1-S8; Sat, 29 Jan 2022 06:34:03 -0500 Received: by mail-pj1-x1033.google.com with SMTP id s2-20020a17090ad48200b001b501977b23so13436892pju.2; Sat, 29 Jan 2022 03:34:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9jUgpvUuGB9wOzqmAKeWK4QJ6Co17E+QQdpKnSQ42oM=; b=RpFMX9AVJWrOs5eILMTPW0Gc3XRYMnjZ8d1dqKnGp71MnD69co+dRlsG7APJwgU1wG S0E5JLbHF1YfV940oQoLBHLgisib+qCAf8JY0e86TpJPN/sDjK5oyq8MkPzNQujcOTt5 SinjXu5ROGhOJXXhkYNMgOQkggSgZb4DaPqpMrB2vaI0OxKkxuepSDZOiKXSk6IBkBTJ wOl6n92POfoC5rApiOtyK9qTIcjARr/ocR+loDT8nX7PJ6sj5wkmZu0FOWh3Qj5JcQGT WhqU2xBqbBqBcSKlnEhiy+WrQXdel1iLOzKOMgpRBsn7kUgavC9YTIoHnZVSURwEEMIR upWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=9jUgpvUuGB9wOzqmAKeWK4QJ6Co17E+QQdpKnSQ42oM=; b=awA4p0XFkP5i8A58uFlT59jcH7LreOtLr6E33lzZ6fG6c24Ly+1DrioWd3eIKhuSd9 TjZ5yucMBQImoQ/POg5Kvr6gp6/ZOHeLsGUOOxpmmxWVQ26s8qohMLXiYD+xN7Uj+NTM Kk6K84iW27R1bzIaI6GsJAHaA1+VM4lgTs76PP6IaDDZEg5WaHiPBgefofm1hxBnNqSJ j0xUQvDYsuQWceaCm9yDTjpelO21AbAgT5Qmm3qA+keFvCyUvZwhEgVGXDjljfLWaeg+ 1KxhOt7AnPS/hUXzfLDJHbWqdm6qDvqA+plepCUD4pDMoShnvaQYYGdWHGaUxoK9twYR Lq1w== X-Gm-Message-State: AOAM5329wJgL1ggq6Y9cRnt5XhrrkiFzZMN47lnV0kbD+WKUuuiBJ0Wx qniPpAML/9p8igYNXLbjp+jA0G+S99M2bxOV X-Google-Smtp-Source: ABdhPJxXVmt0XFeUtRwzVx4hPiU64JOZyvTR5mgH75/XXgQGrRvTx6WhLDWnF8ni7Po6AHxs1241tQ== X-Received: by 2002:a17:902:9346:: with SMTP id g6mr12801330plp.156.1643456039764; Sat, 29 Jan 2022 03:33:59 -0800 (PST) Received: from localhost ([209.95.60.92]) by smtp.gmail.com with ESMTPSA id u2sm13854922pfk.15.2022.01.29.03.33.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 29 Jan 2022 03:33:59 -0800 (PST) From: Ihor Radchenko To: Bastien , Kyle Meyer , Nicolas Goaziou , Karl Voit , Christian Heinrich , emacs-orgmode@gnu.org Subject: [PATCH 00/35] Merge org-fold feature branch Date: Sat, 29 Jan 2022 19:37:52 +0800 Message-Id: X-Mailer: git-send-email 2.34.1 In-Reply-To: <87y2cvloay.fsf@gnu.org> References: <87y2cvloay.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Host-Lookup-Failed: Reverse DNS lookup failed for 2607:f8b0:4864:20::1033 (failed) Received-SPF: pass client-ip=2607:f8b0:4864:20::1033; envelope-from=yantar92@gmail.com; helo=mail-pj1-x1033.google.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.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_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Ihor Radchenko Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1643456100; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=9jUgpvUuGB9wOzqmAKeWK4QJ6Co17E+QQdpKnSQ42oM=; b=i9R9U4Fu1vvpjXx9EsF2qpFBNUFzpWIlrg05qPq8dOai15bMkuLGUAv9qw8sIK7V+J6xi7 ufoajcnJbtLRTABe00xAnYlyvsmPPwo3WURLvvd6eDLlrzNAKdER1VnpZ4q4xMm0gm05cO gu5VD79TK/tmVbhBL/7UW8wKD+mV8/v+NwTMjpMAozSIDFgP03Xrze5UEjSR4kvouzbTMA FAIR5gnbzsmU4ysjYrhNxKnUPDo+2bsPlvU2yMbab0pGzMc5Tl+7X1RVN15aGIEdkjpci5 oWATZdKW3UHa+/gJYDxGG2s0l6G6EMwo9mbDk7l37KUUygzbe40w8eKnDt+n6w== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1643456100; a=rsa-sha256; cv=none; b=CfJ02w8LXkEoWFCc/xH+XL90Fo/+IHnr+JY6vk1r+J89Lnpl5Cc9gEI7aZxUDThP6ZKUQF UB151uHyec0BEMfPE2a3F+T108UTD9U2gwH9uyr9eOrU+yjAvZXnovjmxKFFllaYJMQ0DQ Wp4/fNF/F+uO8Vw/s3SNKWhndJW4N082ZDWwxm/7qifzOMhSyAzH1FtI5tabr/yXjno+uG snhjKL2RPSf1VfWBaCzimxFvqN33WOfQtXnLGv6z8GOVL5o1MdWm+gIsbbL8+16V101RnO RJRDhXJIblbiswVcLigFmb5bR3UQ6fQUdyleOgJNYaSEAyymoGWRq2h2Smfk/w== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=RpFMX9AV; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -4.83 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=RpFMX9AV; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 5CDD228ED0 X-Spam-Score: -4.83 X-Migadu-Scanner: scn0.migadu.com X-TUID: XMwKkxsktAYm It took a while, but I am finally done with rebasing the org-fold branch code onto current main. This branch has been tested by me and other volunteers for over a year. Things are basically stable using recent Emacs versions. There were a couple of back-compatibility issues with older Emacs, which I fixed during the cleanup. Those may need to be tested more carefully after merging to main. I would like to thank all the people who helped with bug reporting and provided bugfixes over the testing time. Thank you all - arkhan, HyunggyuJang, Robert Irelan, Alois Janíček, Anders Johansson, Daniel Kraus, Ypot, ntharim, Colin McLear, Yiming Chen, tpeacock19, and Karl Voit. After the cleanup, some patches are not included for the merge. Apart from my patches, 3 patches by Anders Johansson are included here. He has signed FSF copyright paperwork and appears on the Org mode contributor list (https://orgmode.org/worg/contributors.html). Unless there are comments on the patches below, I plan to merge the branch in the coming weeks. Please, let me know if I still need to wait for comments. Anders Johansson (3): Fix typo: delete-duplicates → delete-dups Fix bug in org-get-heading Rename remaining org-force-cycle-archived → org-cycle-force-archived Ihor Radchenko (32): Add org-fold-core: new folding engine Separate folding functions from org.el into new library: org-fold Separate cycling functions from org.el into new library: org-cycle Remove functions from org.el that are now moved elsewhere Disable native-comp in agenda org-macs: New function org-find-text-property-region org-at-heading-p: Accept optional argument org-string-width: Reimplement to work with new folding Rename old function call to use org-fold Implement link folding Implement overlay- and text-property-based versions of some functions org-fold: Handle indirect buffer visibility Fix subtle differences between overlays and invisible text properties Support extra org-fold optimisations for huge buffers Alias new org-fold functions to their old shorter names Obsolete old function names that are now in org-fold org-compat: Work around some third-party packages using outline-* functions Move `org-buffer-list' to org-macs.el Restore old visibility behaviour of org-refile Add org-fold-related tests org-manual: Update to new org-fold function names ORG-NEWS: Add list of changes Backport contributed commits Fix org-fold--hide-drawers--overlays org-string-width: Handle undefined behaviour in older Emacs org-string-width: Work around `window-pixel-width' bug in old Emacs org-fold-show-set-visibility: Fix edge case when folded region is at BOB org-fold-core: Fix fontification inside folded regions test-org/string-width: Add tests for strings with prefix properties org--string-from-props: Fix handling folds in Emacs <28 org-link-make-string: Throw error when both LINK and DESCRIPTION are empty test-ol/org-toggle-link-display: Fix compatibility with old Emacs doc/org-manual.org | 14 +- etc/ORG-NEWS | 104 ++ lisp/ob-core.el | 14 +- lisp/ob-lilypond.el | 4 +- lisp/ob-ref.el | 4 +- lisp/ol.el | 59 +- lisp/org-agenda.el | 50 +- lisp/org-archive.el | 12 +- lisp/org-capture.el | 7 +- lisp/org-clock.el | 126 +- lisp/org-colview.el | 10 +- lisp/org-compat.el | 189 ++- lisp/org-crypt.el | 8 +- lisp/org-cycle.el | 818 +++++++++++ lisp/org-element.el | 55 +- lisp/org-feed.el | 4 +- lisp/org-fold-core.el | 1503 +++++++++++++++++++ lisp/org-fold.el | 1132 +++++++++++++++ lisp/org-footnote.el | 6 +- lisp/org-goto.el | 6 +- lisp/org-id.el | 4 +- lisp/org-inlinetask.el | 26 +- lisp/org-keys.el | 26 +- lisp/org-lint.el | 3 +- lisp/org-list.el | 84 +- lisp/org-macs.el | 290 +++- lisp/org-mobile.el | 2 +- lisp/org-mouse.el | 4 +- lisp/org-refile.el | 3 +- lisp/org-src.el | 6 +- lisp/org-timer.el | 2 +- lisp/org.el | 2552 +++++++++++---------------------- lisp/ox-org.el | 2 +- lisp/ox.el | 4 +- testing/lisp/test-ob.el | 12 +- testing/lisp/test-ol.el | 24 + testing/lisp/test-org-list.el | 75 +- testing/lisp/test-org-macs.el | 6 +- testing/lisp/test-org.el | 258 +++- 39 files changed, 5475 insertions(+), 2033 deletions(-) create mode 100644 lisp/org-cycle.el create mode 100644 lisp/org-fold-core.el create mode 100644 lisp/org-fold.el -- 2.34.1