From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?UTF-8?B?6Lev5a6i?= Newsgroups: gmane.emacs.devel Subject: [ELPA] Brief v5.90: neighboring window merge on deletion Date: Fri, 22 Mar 2024 19:23:55 +0800 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="5292"; mail-complaints-to="usenet@ciao.gmane.io" To: Emacs developers Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Mar 22 12:25:33 2024 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 1rnd1g-0001Fl-Ni for ged-emacs-devel@m.gmane-mx.org; Fri, 22 Mar 2024 12:25:32 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rnd0m-0001Kp-OE; Fri, 22 Mar 2024 07:24:36 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rnd0l-0001Kf-P5 for emacs-devel@gnu.org; Fri, 22 Mar 2024 07:24:35 -0400 Original-Received: from mail-ed1-x529.google.com ([2a00:1450:4864:20::529]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rnd0k-0002iH-3L for emacs-devel@gnu.org; Fri, 22 Mar 2024 07:24:35 -0400 Original-Received: by mail-ed1-x529.google.com with SMTP id 4fb4d7f45d1cf-56be2220f7bso595057a12.1 for ; Fri, 22 Mar 2024 04:24:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1711106672; x=1711711472; darn=gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=HEQl8+oi95LWYJlaQk6Mp4axgQEtUylRSKNwdFHj22Y=; b=QgGhYbZ39H+0izj/VGFDSnWWhdF9IkM82S9hgDOkIa1PM5eQYFl3WChkkm7GEK6QM3 Hx9HEHXcd1s0x2zV3Ll7GsMozRqOb6JU0Cbffu3nzbTqVi9/hlFIUyG5ZtV0O/CuPMns 8PYPL1Qo9D5HNZfW6S6I2DIaGy/cJcBwnz+DLw6AixTkQRTJJYZJbjigBgtrlqJ6oCyz LyI8uTqjmbdHzNjdVmEjO71azJ/UrdZY7x/azG6OxCnrjILhWL2/H85epGq+AoD4WJny ZJZsIeSce41Z5O3p7ghKyg+hc5EU1uQGfkphs6tLicYVVV4bwIagQsujJxH1gbQCX9tX 1Hjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711106672; x=1711711472; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=HEQl8+oi95LWYJlaQk6Mp4axgQEtUylRSKNwdFHj22Y=; b=WzR/HfRyQ75gTHVu2MqMyC6fObv4H5K8axmG4OvRm2iaTMciJioRKIuT7GqPyQVtls hQK0+Uk6wkO08R5zXUtRA9SUmL40w0nT+F1FQnHX3ae3PGXcm+59Yky0lWZSqwNEvWj7 9CEkmkw/NcPoP2G7ZezD6Z8Xmttm8h2e19HXIWS2MkQmFeMl8t5l5/kO4oEQizUVosT8 Kl0PokKez7/Luh/X/ZowOF6If3CEnTMYhH5hLD84E4pCy4lnY4DbtOGT76jP1U1txc3t /C6A6mTfi3hSBBgOxAWPPpH+/Lf8eLndy09IoYT2XkkyV7grBxpFKW21ypeKBU9ioh+x YB7g== X-Gm-Message-State: AOJu0Yy2pD3MI5o+zfxxIO8RR00qAfDra7X6b1v4/jVf+ge0DmJ3aRSr KYeMnQFRudTkNWSLMGScT9i0aBjRcXQtFP8207DqNR8eFywp3J3yAcIXCcONvmQg3w6nW3LbeDc hU8mcaH3tcxVpeDOEUOLJftL+BgcUqKZF/eQ= X-Google-Smtp-Source: AGHT+IFNqvfMIJmZGdHnQCotIyg/VZYJdO7sIZxcjUZN5nlihYgDRCgGK8OQFdm89oOrrq5vkXzULLlMNxNcQibMj9E= X-Received: by 2002:a17:906:b2c9:b0:a47:34c8:900b with SMTP id cf9-20020a170906b2c900b00a4734c8900bmr709765ejb.0.1711106671655; Fri, 22 Mar 2024 04:24:31 -0700 (PDT) Received-SPF: pass client-ip=2a00:1450:4864:20::529; envelope-from=luke.yx.lee@gmail.com; helo=mail-ed1-x529.google.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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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.29 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-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:317232 Archived-At: Hi all, In case you are interested. I've just released the Brief editor mode v5.90 targeting the feature `merge neighboring window on deletion'. This functionality merges two aligned adjacent windows regardless of how Emacs currently splits the frame. It meaning that even if two aligned neighboring windows in the same frame belong to different parent (internal) windows, they can almost always be merged by reconstructing the window tree properly. This is probably not a big deal but for me this task had been postponed for over 20 years due to not finding time to implement them until recently. It took me sometime early this year to figure out an efficient algorithm. It reconstructs window subtree reorganizing vertical/horizontal spliter lines to achieve the desired window layout. However, due to the restriction on how Emacs split windows there are still layouts that can't be displayed by Emacs. A typical such window layout is: ______ |____| | | |__|_| |_|____| Any such structure within any sub-window of a frame cannot be displayed, as far as I know (let me know if any of you know a simple way to do so). But for regular daily use we don't really need this kind of window layout so it won't be supported unless a simple approach is found. Notice that the atomic window is not yet properly handled and is on-going, if you find any other window attribute not taken care of properly, please be sure to let me know. Thanks! -- Best regards, Luke Lee