From 802f269c80f4dfabef27087b5af62ce1ddbeddf2 Mon Sep 17 00:00:00 2001 From: Pluto Date: Thu, 22 Oct 2026 20:40:41 +0530 Subject: [PATCH 1/5] chore: add licence files for cspell dictionaries and fflate --- .../licences/cspell-dictionaries.markdown | 794 ++++++++++++++++++ .../licences/cspell-trie-lib.markdown | 21 + src/thirdparty/licences/fflate.markdown | 21 + 3 files changed, 836 insertions(+) create mode 100644 src/thirdparty/licences/cspell-dictionaries.markdown create mode 100644 src/thirdparty/licences/cspell-trie-lib.markdown create mode 100644 src/thirdparty/licences/fflate.markdown diff --git a/src/thirdparty/licences/cspell-dictionaries.markdown b/src/thirdparty/licences/cspell-dictionaries.markdown new file mode 100644 index 0000000000..da93c6016c --- /dev/null +++ b/src/thirdparty/licences/cspell-dictionaries.markdown @@ -0,0 +1,794 @@ +# cspell dictionaries + +## @cspell/dict-en_us 4.4.43 + +MIT License + +Copyright (c) 2017-2025 Street Side Software + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +## @cspell/dict-en-gb 5.0.38 + +GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. + +## @cspell/dict-software-terms 5.4.8 + +The MIT License (MIT) + +Copyright (c) 2017-2025 Street Side Software + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## @cspell/dict-companies 3.2.13 + +The MIT License (MIT) + +Copyright (c) 2017-2025 Street Side Software + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## @cspell/dict-fonts 4.0.6 + +The MIT License (MIT) + +Copyright (c) 2017-2025 Street Side Software + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## @cspell/dict-filetypes 3.0.18 + +The MIT License (MIT) + +Copyright (c) 2017-2025 Street Side Software + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## @cspell/dict-fullstack 3.2.9 + +The MIT License (MIT) + +Copyright (c) 2017-2025 Street Side Software + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## @cspell/dict-lorem-ipsum 4.0.5 + +The MIT License (MIT) + +Copyright (c) 2017-2025 Street Side Software + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## @cspell/dict-html 4.0.16 + +The MIT License (MIT) + +Copyright (c) 2017-2025 Street Side Software + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## @cspell/dict-html-symbol-entities 4.0.5 + +The MIT License (MIT) + +Copyright (c) 2017-2025 Street Side Software + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## @cspell/dict-css 4.1.2 + +The MIT License (MIT) + +Copyright (c) 2017-2025 Street Side Software + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## @cspell/dict-typescript 3.2.3 + +The MIT License (MIT) + +Copyright (c) 2017-2025 Street Side Software + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## @cspell/dict-node 5.0.9 + +The MIT License (MIT) + +Copyright (c) 2017-2025 Street Side Software + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## @cspell/dict-npm 5.2.55 + +The MIT License (MIT) + +Copyright (c) 2017-2025 Street Side Software + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## @cspell/dict-git 3.1.1 + +The MIT License (MIT) + +Copyright (c) 2017-2025 Street Side Software + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## @cspell/dict-markdown 2.0.18 + +The MIT License (MIT) + +Copyright (c) 2017-2022 Street Side Software + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## @cspell/dict-python 4.5.2 + +The MIT License (MIT) + +Copyright (c) 2017-2025 Street Side Software + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## @cspell/dict-java 5.0.12 + +The MIT License (MIT) + +Copyright (c) 2017-2025 Street Side Software + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## @cspell/dict-php 4.1.3 + +The MIT License (MIT) + +Copyright (c) 2017-2025 Street Side Software + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## @cspell/dict-cpp 7.2.0 + +The MIT License (MIT) + +Copyright (c) 2017-2025 Street Side Software + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## @cspell/dict-golang 6.0.29 + +The MIT License (MIT) + +Copyright (c) 2017-2025 Street Side Software + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## @cspell/dict-rust 4.1.2 + +The MIT License (MIT) + +Copyright (c) 2017-2020 Alexander Andreev +Copyright (c) 2017-2025 Street Side Software + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## @cspell/dict-csharp 4.0.8 + +The MIT License (MIT) + +Copyright (c) 2017-2025 Street Side Software + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## @cspell/dict-shell 1.2.0 + +The MIT License (MIT) + +Copyright (c) 2017-2025 Street Side Software + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## @cspell/dict-sql 2.2.1 + +The MIT License (MIT) + +Copyright (c) 2017-2025 Street Side Software + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## @cspell/dict-docker 1.1.17 + +The MIT License (MIT) + +Copyright (c) 2022-2025 Street Side Software + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +## @cspell/dict-ruby 5.1.4 + +The MIT License (MIT) + +Copyright (c) 2017-2025 Street Side Software + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/src/thirdparty/licences/cspell-trie-lib.markdown b/src/thirdparty/licences/cspell-trie-lib.markdown new file mode 100644 index 0000000000..04a247e2b4 --- /dev/null +++ b/src/thirdparty/licences/cspell-trie-lib.markdown @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Jason Dent + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/src/thirdparty/licences/fflate.markdown b/src/thirdparty/licences/fflate.markdown new file mode 100644 index 0000000000..bd36874f34 --- /dev/null +++ b/src/thirdparty/licences/fflate.markdown @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Arjun Barrett + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file From 29a8791d67976419da05d0f6da04331fa24c0146 Mon Sep 17 00:00:00 2001 From: Pluto Date: Thu, 22 Oct 2026 20:40:52 +0530 Subject: [PATCH 2/5] feat: add spell check panel styles and icon --- src/styles/Extn-SpellCheck.less | 241 ++++++++++++++++++++++ src/styles/brackets.less | 1 + src/styles/images/panel-icon-spelling.svg | 1 + 3 files changed, 243 insertions(+) create mode 100644 src/styles/Extn-SpellCheck.less create mode 100644 src/styles/images/panel-icon-spelling.svg diff --git a/src/styles/Extn-SpellCheck.less b/src/styles/Extn-SpellCheck.less new file mode 100644 index 0000000000..4033777a23 --- /dev/null +++ b/src/styles/Extn-SpellCheck.less @@ -0,0 +1,241 @@ +#status-indicators #status-spelling { + display: flex; + align-items: center; + gap: 4px; + padding: 0 7px; + border: none; + cursor: pointer; + color: @bc-text-thin-quiet; + + .dark & { + color: @dark-bc-text-thin-quiet; + } + + i { + font-size: 12px; + } + + .spelling-count { + font-size: 11px; + line-height: 1; + } + + &.spelling-ok i { + color: @spell-underline-text; + } + + &.spelling-issues { + color: @bc-text; + + .dark & { + color: @dark-bc-text; + } + + i { + color: #e39a2c; + } + } + + &.spelling-off, + &.spelling-locked, + &.spelling-unavailable { + opacity: 0.55; + } + + &.spelling-error i { + color: @error-underline-text; + } + + &:hover { + background-color: rgba(0, 0, 0, 0.03); + } + + &:active { + background-color: rgba(0, 0, 0, 0.05); + } +} + +#spelling-panel { + .user-select(text); + + .toolbar { + display: flex; + align-items: center; + padding: 6px 8px; + } + + .title { + flex: 1; + margin-left: 4px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + + .spelling-toolbar-actions { + display: flex; + align-items: center; + gap: 6px; + margin-left: 8px; + } + + .spelling-body { + height: calc(100% - 36px); + overflow: auto; + } + + .spelling-message { + max-width: 560px; + margin: 0 auto; + padding: 26px 20px; + text-align: center; + } + + .spelling-message-title { + font-size: 15px; + font-weight: 600; + margin-bottom: 6px; + } + + .spelling-message-text { + color: @bc-text-thin-quiet; + margin-bottom: 14px; + line-height: 1.5; + + .dark & { + color: @dark-bc-text-thin-quiet; + } + } + + .spelling-message-actions { + display: flex; + justify-content: center; + gap: 8px; + } + + .spelling-list table { + table-layout: fixed; + width: 100%; + } + + .spelling-row { + cursor: pointer; + } + + .line-number { + text-align: right; + white-space: nowrap; + width: 56px; + } + + .spelling-word-cell { + width: 180px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + + .spelling-word { + font-weight: 600; + padding-bottom: 1px; + background: url(images/wavy-spell-error.svg) repeat-x bottom left; + } + + .spelling-snippet { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + color: @bc-text-thin-quiet; + + .dark & { + color: @dark-bc-text-thin-quiet; + } + + mark { + background: transparent; + color: inherit; + font-weight: 600; + padding: 0; + } + } + + .spelling-actions-row td { + padding: 4px 8px 6px 64px; + } + + .spelling-actions { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 5px; + } + + .spelling-actions .btn { + margin: 0; + } + + .spelling-actions-label { + color: @bc-text-thin-quiet; + margin-right: 2px; + + .dark & { + color: @dark-bc-text-thin-quiet; + } + } + + .spelling-actions-spacer { + flex: 1; + } + + .spelling-more { + padding: 8px 12px; + color: @bc-text-thin-quiet; + + .dark & { + color: @dark-bc-text-thin-quiet; + } + } +} + +.spelling-quick-view { + padding: 4px 2px; + max-width: 380px; + + .spelling-qv-header { + margin-bottom: 6px; + } + + .spelling-qv-word { + font-weight: 600; + margin-right: 6px; + } + + .spelling-qv-label { + color: @bc-text-thin-quiet; + + .dark & { + color: @dark-bc-text-thin-quiet; + } + } + + .spelling-qv-suggestions { + display: flex; + flex-wrap: wrap; + gap: 4px; + margin-bottom: 8px; + } + + .spelling-qv-suggestions .btn { + margin: 0; + } + + .spelling-qv-actions { + display: flex; + flex-wrap: wrap; + gap: 10px; + } + + .spelling-qv-actions a { + cursor: pointer; + } +} diff --git a/src/styles/brackets.less b/src/styles/brackets.less index 9c2f444a00..1e3d15a5c5 100644 --- a/src/styles/brackets.less +++ b/src/styles/brackets.less @@ -55,6 +55,7 @@ @import "Extn-PhoenixTour.less"; @import "Extn-Terminal.less"; @import "Extn-TypeScriptSupport.less"; +@import "Extn-SpellCheck.less"; @import "UserProfile.less"; @import "phoenix-pro.less"; @import "VideoPlayer.less"; diff --git a/src/styles/images/panel-icon-spelling.svg b/src/styles/images/panel-icon-spelling.svg new file mode 100644 index 0000000000..f6e627fb0d --- /dev/null +++ b/src/styles/images/panel-icon-spelling.svg @@ -0,0 +1 @@ + From 3b2c71ce1baaa22b12eecb9c21f572d5c08641f5 Mon Sep 17 00:00:00 2001 From: Pluto Date: Thu, 22 Oct 2026 20:41:02 +0530 Subject: [PATCH 3/5] chore: auto update API docs --- docs/API-Reference/command/Commands.md | 12 ++++++++++++ docs/API-Reference/features/TaskManager.md | 1 + docs/API-Reference/utils/DragAndDrop.md | 3 ++- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/docs/API-Reference/command/Commands.md b/docs/API-Reference/command/Commands.md index 08e2feb9ff..43dc124fa8 100644 --- a/docs/API-Reference/command/Commands.md +++ b/docs/API-Reference/command/Commands.md @@ -554,6 +554,18 @@ Opens the terminal panel ## VIEW\_ENABLE\_AI Toggles whether AI features are enabled +**Kind**: global variable + + +## VIEW\_TOGGLE\_SPELL\_CHECK +Toggles the spell checker + +**Kind**: global variable + + +## VIEW\_TOGGLE\_SPELLING\_PANEL +Toggles the spelling panel visibility + **Kind**: global variable diff --git a/docs/API-Reference/features/TaskManager.md b/docs/API-Reference/features/TaskManager.md index d07490a63a..9d13cf300d 100644 --- a/docs/API-Reference/features/TaskManager.md +++ b/docs/API-Reference/features/TaskManager.md @@ -39,6 +39,7 @@ like `showStopIcon`, `hideStopIcon`, etc. | [options.onRetryClick] | function | | Callback function triggered when the retry button is clicked. | | [options.onSelect] | function | | Callback function triggered when the task is selected from the dropdown. | | [options.progressPercent] | number | | Initial progress percentage of the task. | +| [options.hideProgressBar] | boolean | | Hide progress for tasks waiting on a user action. | | [options.noSpinnerNotification] | boolean | | If set to true, will not show the task spinners for this task. This can be used for silent background tasks where user attention is not needed. | **Example** diff --git a/docs/API-Reference/utils/DragAndDrop.md b/docs/API-Reference/utils/DragAndDrop.md index 5800006e76..b1caeda9b8 100644 --- a/docs/API-Reference/utils/DragAndDrop.md +++ b/docs/API-Reference/utils/DragAndDrop.md @@ -18,7 +18,8 @@ Returns true if the drag and drop items contains valid drop objects. ## openDroppedFiles(paths) ⇒ Promise -Open dropped files +Open dropped files in order so the last file becomes active, regardless of load times. +Continue processing the remaining paths if an earlier file cannot be opened. **Kind**: global function **Returns**: Promise - Promise that is resolved if all files are opened, or rejected From 379944121e67619acd20ea63921a87632648bbeb Mon Sep 17 00:00:00 2001 From: Pluto Date: Thu, 22 Oct 2026 20:41:12 +0530 Subject: [PATCH 4/5] feat: add spell checker commands, strings and dictionary build steps --- .gitignore | 1 + gulpfile.js/index.js | 1 + gulpfile.js/thirdparty-lib-copy.js | 90 +++++++ package-lock.json | 399 ++++++++++++++++++++++++++++- package.json | 29 +++ src-node/package-lock.json | 4 +- src/command/Commands.js | 5 + src/nls/root/strings.js | 66 +++++ 8 files changed, 591 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 89a2b2fa09..cc8a99c69f 100644 --- a/.gitignore +++ b/.gitignore @@ -82,6 +82,7 @@ test/thirdparty/jasmine-reporters /src/thirdparty/bugsnag-performance.min.js.map /src/thirdparty/no-minify/ /src/thirdparty/xterm +/src/thirdparty/cspell-dicts # ignore files copied from node_modules to src/thirdparty # https://github.com/phcode-dev/phoenix/issues/10 diff --git a/gulpfile.js/index.js b/gulpfile.js/index.js index b4109d3943..aa96dfa440 100644 --- a/gulpfile.js/index.js +++ b/gulpfile.js/index.js @@ -457,6 +457,7 @@ const ALLOWED_EXTENSIONS_TO_CACHE = ["js", "html", "htm", "xml", "xhtml", "mjs", "txt", "otf", "json", "config", "zip", + "gz", "trie", "png", "svg", "jpg", "jpeg", "gif", "ico", "webp", "mustache", "md", "markdown"]; const DISALLOWED_EXTENSIONS_TO_CACHE = ["map", "nuspec", "partial", "pre", "post", diff --git a/gulpfile.js/thirdparty-lib-copy.js b/gulpfile.js/thirdparty-lib-copy.js index cb1ce162a8..293cecd06a 100644 --- a/gulpfile.js/thirdparty-lib-copy.js +++ b/gulpfile.js/thirdparty-lib-copy.js @@ -102,6 +102,89 @@ function _getConfigJSON() { return JSON.parse(fs.readFileSync(configPath, "utf8")); } + +// cspell dictionaries for the Phoenix Pro spell checker, copied to src/thirdparty/cspell-dicts// +const CSPELL_DICTIONARIES = { + "en_US": ["node_modules/@cspell/dict-en_us/en_US.trie.gz"], + "en_GB": ["node_modules/@cspell/dict-en-gb/en_GB.trie.gz"], + "software-terms": [ + "node_modules/@cspell/dict-software-terms/dict/softwareTerms.txt.gz", + "node_modules/@cspell/dict-software-terms/dict/software-tools.txt", + "node_modules/@cspell/dict-software-terms/dict/networkingTerms.txt", + "node_modules/@cspell/dict-software-terms/dict/webServices.txt", + "node_modules/@cspell/dict-software-terms/dict/computing-acronyms.txt", + "node_modules/@cspell/dict-software-terms/dict/coding-compound-terms.txt" + ], + "companies": ["node_modules/@cspell/dict-companies/dict/companies.txt"], + "fonts": ["node_modules/@cspell/dict-fonts/dict/fonts.txt"], + "filetypes": ["node_modules/@cspell/dict-filetypes/filetypes.txt.gz"], + "fullstack": ["node_modules/@cspell/dict-fullstack/dict/fullstack.txt"], + "lorem-ipsum": ["node_modules/@cspell/dict-lorem-ipsum/dict/lorem.txt"], + "html": ["node_modules/@cspell/dict-html/dict/html.txt.gz"], + "html-symbol-entities": ["node_modules/@cspell/dict-html-symbol-entities/dict/entities.txt.gz"], + "css": ["node_modules/@cspell/dict-css/dict/css.txt"], + "typescript": ["node_modules/@cspell/dict-typescript/dict/typescript.txt"], + "node": ["node_modules/@cspell/dict-node/dict/node.txt"], + "npm": ["node_modules/@cspell/dict-npm/dict/npm.txt"], + "git": ["node_modules/@cspell/dict-git/dict/git-terms.txt"], + "markdown": ["node_modules/@cspell/dict-markdown/markdown.txt.gz"], + "python": [ + "node_modules/@cspell/dict-python/dict/python.txt", + "node_modules/@cspell/dict-python/dict/python-common.txt" + ], + "java": ["node_modules/@cspell/dict-java/dict/java.trie"], + "php": ["node_modules/@cspell/dict-php/dict/php.txt"], + "cpp": [ + "node_modules/@cspell/dict-cpp/dict/cpp.txt.gz", + "node_modules/@cspell/dict-cpp/dict/cpp-refined.txt.gz", + "node_modules/@cspell/dict-cpp/dict/cpp-legacy.txt.gz", + "node_modules/@cspell/dict-cpp/dict/cpp-compound-words.txt.gz" + ], + "golang": ["node_modules/@cspell/dict-golang/dict/go.txt"], + "rust": [ + "node_modules/@cspell/dict-rust/dict/rust.txt.gz", + "node_modules/@cspell/dict-rust/dict/crates.txt.gz" + ], + "csharp": ["node_modules/@cspell/dict-csharp/dict/csharp.txt.gz"], + "shell": ["node_modules/@cspell/dict-shell/dict/shell-all-words.txt"], + "sql": ["node_modules/@cspell/dict-sql/sql.txt.gz"], + "docker": ["node_modules/@cspell/dict-docker/dict/docker-words.txt.gz"], + "ruby": [ + "node_modules/@cspell/dict-ruby/dict/ruby.txt", + "node_modules/@cspell/dict-ruby/dict/gems.txt" + ] +}; + +function _copyCSpellDictionaries() { + return new Promise((resolve) => { + const destRoot = "src/thirdparty/cspell-dicts"; + const licenceChunks = []; + const seenPackages = new Set(); + fs.rmSync(destRoot, { recursive: true, force: true }); + for (const [id, files] of Object.entries(CSPELL_DICTIONARIES)) { + const destDir = path.join(destRoot, id); + fs.mkdirSync(destDir, { recursive: true }); + for (const file of files) { + console.log(`Copying cspell dictionary ${file} to ${destDir}`); + fs.copyFileSync(file, path.join(destDir, path.basename(file))); + const packageDir = file.split("/").slice(0, 3).join("/"); + if (seenPackages.has(packageDir)) { + continue; + } + seenPackages.add(packageDir); + const packageJSON = JSON.parse(fs.readFileSync(path.join(packageDir, "package.json"), "utf8")); + const licenceFile = ["LICENSE", "LICENSE.md", "COPYING"].map(name => path.join(packageDir, name)) + .find(candidate => fs.existsSync(candidate)); + const licenceText = licenceFile ? fs.readFileSync(licenceFile, "utf8") : ""; + licenceChunks.push(`## ${packageJSON.name} ${packageJSON.version}\n\n${licenceText.trim()}\n`); + } + } + fs.writeFileSync("src/thirdparty/licences/cspell-dictionaries.markdown", + `# cspell dictionaries\n\n${licenceChunks.join("\n")}`); + resolve(); + }); +} + /** * Add thirdparty libs copied to gitignore except the licence file. */ @@ -255,6 +338,13 @@ let copyThirdPartyLibs = series( copyLicence.bind(copyLicence, 'node_modules/jasmine-reporters/LICENSE', 'jasmine-reporters'), // lmdb copyLicence.bind(copyLicence, 'node_modules/lmdb/LICENSE', 'lmdb'), + // cspell trie engine + fflate (gzip) used by the Phoenix Pro spell checker worker. ES modules, so no-minify. + renameFile.bind(renameFile, 'node_modules/cspell-trie-lib/dist/index.js', 'cspell-trie-lib.js', + 'src/thirdparty/no-minify/cspell'), + copyLicence.bind(copyLicence, 'node_modules/cspell-trie-lib/LICENSE', 'cspell-trie-lib'), + renameFile.bind(renameFile, 'node_modules/fflate/esm/browser.js', 'fflate.js', 'src/thirdparty/no-minify/cspell'), + copyLicence.bind(copyLicence, 'node_modules/fflate/LICENSE', 'fflate'), + _copyCSpellDictionaries, // xterm.js terminal emulator (@xterm/* scoped packages, v6) copyFiles.bind(copyFiles, ['node_modules/@xterm/xterm/lib/xterm.js', 'node_modules/@xterm/xterm/lib/xterm.js.map'], 'src/thirdparty/xterm'), diff --git a/package-lock.json b/package-lock.json index b4e819d156..5ce46a3391 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,15 +1,42 @@ { "name": "phoenix", - "version": "5.5.3-0", + "version": "5.5.6-0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "phoenix", - "version": "5.5.3-0", + "version": "5.5.6-0", "hasInstallScript": true, "dependencies": { "@bugsnag/js": "^7.18.0", + "@cspell/dict-companies": "^3.2.13", + "@cspell/dict-cpp": "^7.2.0", + "@cspell/dict-csharp": "^4.0.8", + "@cspell/dict-css": "^4.1.2", + "@cspell/dict-docker": "^1.1.17", + "@cspell/dict-en_us": "^4.4.43", + "@cspell/dict-en-gb": "^5.0.38", + "@cspell/dict-filetypes": "^3.0.18", + "@cspell/dict-fonts": "^4.0.6", + "@cspell/dict-fullstack": "^3.2.9", + "@cspell/dict-git": "^3.1.1", + "@cspell/dict-golang": "^6.0.29", + "@cspell/dict-html": "^4.0.16", + "@cspell/dict-html-symbol-entities": "^4.0.5", + "@cspell/dict-java": "^5.0.12", + "@cspell/dict-lorem-ipsum": "^4.0.5", + "@cspell/dict-markdown": "^2.0.18", + "@cspell/dict-node": "^5.0.9", + "@cspell/dict-npm": "^5.2.55", + "@cspell/dict-php": "^4.1.3", + "@cspell/dict-python": "^4.5.2", + "@cspell/dict-ruby": "^5.1.4", + "@cspell/dict-rust": "^4.1.2", + "@cspell/dict-shell": "^1.2.0", + "@cspell/dict-software-terms": "^5.4.8", + "@cspell/dict-sql": "^2.2.1", + "@cspell/dict-typescript": "^3.2.3", "@floating-ui/dom": "^0.5.4", "@fortawesome/fontawesome-free": "^6.1.2", "@highlightjs/cdn-assets": "^11.5.1", @@ -27,8 +54,10 @@ "browser-mime": "^1.0.1", "codemirror": "^5.65.16", "cross-env": "^7.0.3", + "cspell-trie-lib": "^10.4.0", "devicon": "^2.15.1", "emmet": "^2.4.11", + "fflate": "^0.8.3", "file-saver": "^2.0.5", "idb-keyval": "^6.2.1", "jshint": "^2.13.5", @@ -591,6 +620,193 @@ "node": ">=v12" } }, + "node_modules/@cspell/cspell-types": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-10.4.0.tgz", + "integrity": "sha512-LTOrZcDSHj5BkeNSvimuV3AMF7gWjxzXUdQ7zYT/h/57/5flHuE6NPKSXS69ty8vJM0WrVh35L5aDxnCPfDzXA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=22.18.0" + } + }, + "node_modules/@cspell/dict-companies": { + "version": "3.2.13", + "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.2.13.tgz", + "integrity": "sha512-mBJeYzCkiiWgNQxKg7zyQOpFPwcXO4IAzXGbOEFfcQ4Q0G5Fa7Kqd8z+gvnvSK7NPWKJaFmiApC6I0cka02qmQ==", + "license": "MIT" + }, + "node_modules/@cspell/dict-cpp": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-7.2.0.tgz", + "integrity": "sha512-hxz+OyQKV96/Bk2JYGsDuSOheYA5gd8KybXnoZMMu/mhZPnwhPi+qiS0Kjc0gLNbXjJ6wbBuXIQWi1UWpQBU/g==", + "license": "MIT" + }, + "node_modules/@cspell/dict-csharp": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@cspell/dict-csharp/-/dict-csharp-4.0.8.tgz", + "integrity": "sha512-qmk45pKFHSxckl5mSlbHxmDitSsGMlk/XzFgt7emeTJWLNSTUK//MbYAkBNRtfzB4uD7pAFiKgpKgtJrTMRnrQ==", + "license": "MIT" + }, + "node_modules/@cspell/dict-css": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-css/-/dict-css-4.1.2.tgz", + "integrity": "sha512-+ylGoKdwZ2sVOCOnU2Eq5wDZx+RaVX3HoKyNHGGsFvhSw6IidQ6tH/mAPKBDofViHJoWCPNlklE0lTr6MDG3QA==", + "license": "MIT" + }, + "node_modules/@cspell/dict-data-science": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@cspell/dict-data-science/-/dict-data-science-2.0.16.tgz", + "integrity": "sha512-M72mxv5asuAnORurz4iXRJ+Tw9XBq6eu7D2Ne7biP0Z1RciKGNxXWu9JycA/KlVvK1hAlKj/fANlXhuEWpXKFg==", + "license": "MIT" + }, + "node_modules/@cspell/dict-docker": { + "version": "1.1.17", + "resolved": "https://registry.npmjs.org/@cspell/dict-docker/-/dict-docker-1.1.17.tgz", + "integrity": "sha512-OcnVTIpHIYYKhztNTyK8ShAnXTfnqs43hVH6p0py0wlcwRIXe5uj4f12n7zPf2CeBI7JAlPjEsV0Rlf4hbz/xQ==", + "license": "MIT" + }, + "node_modules/@cspell/dict-en_us": { + "version": "4.4.43", + "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.4.43.tgz", + "integrity": "sha512-RK0zfFXSPi0G/zmV9YgUhS2xw9eTV/8DtQ+ouLIiRZ8ejWRt2zhAonu5di+qmIhzhQ62fg7d3tMz3WwRy82yJA==", + "license": "MIT" + }, + "node_modules/@cspell/dict-en-gb": { + "version": "5.0.38", + "resolved": "https://registry.npmjs.org/@cspell/dict-en-gb/-/dict-en-gb-5.0.38.tgz", + "integrity": "sha512-xLuoDSM5tzEF2fpQWNE4QXxZCNdjkZbdRQ7xTjrjqJGHwOjNlSLvZoh/GYQsQ1ROLe/jXPENbQn5M5DhjrSaDg==", + "license": "LGPL-3.0" + }, + "node_modules/@cspell/dict-filetypes": { + "version": "3.0.18", + "resolved": "https://registry.npmjs.org/@cspell/dict-filetypes/-/dict-filetypes-3.0.18.tgz", + "integrity": "sha512-yU7RKD/x1IWmDLzWeiItMwgV+6bUcU/af23uS0+uGiFUbsY1qWV/D4rxlAAO6Z7no3J2z8aZOkYIOvUrJq0Rcw==", + "license": "MIT" + }, + "node_modules/@cspell/dict-fonts": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@cspell/dict-fonts/-/dict-fonts-4.0.6.tgz", + "integrity": "sha512-aR/0csY01dNb0A1tw/UmN9rKgHruUxsYsvXu6YlSBJFu60s26SKr/k1o4LavpHTQ+lznlYMqAvuxGkE4Flliqw==", + "license": "MIT" + }, + "node_modules/@cspell/dict-fullstack": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/@cspell/dict-fullstack/-/dict-fullstack-3.2.9.tgz", + "integrity": "sha512-diZX+usW5aZ4/b2T0QM/H/Wl9aNMbdODa1Jq0ReBr/jazmNeWjd+PyqeVgzd1joEaHY+SAnjrf/i9CwKd2ZtWQ==", + "license": "MIT" + }, + "node_modules/@cspell/dict-git": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-git/-/dict-git-3.1.1.tgz", + "integrity": "sha512-XvuGVYj9YEu4EzntqyhH8XlTRyy57C6j8oxkIbUQfR2UYzxZGAP77XHl7qY7eC/40r/haDwnBaccyFR6BRmUCg==", + "license": "MIT" + }, + "node_modules/@cspell/dict-golang": { + "version": "6.0.29", + "resolved": "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-6.0.29.tgz", + "integrity": "sha512-EZCgfxrr5lPnYQLmSvB6YtpfoDFt2KKxAD4ppq2xGSIgDFXAF7Mv4doiXIFUQaynCBIEfAMl3f/uDfrIUo4fyQ==", + "license": "MIT" + }, + "node_modules/@cspell/dict-html": { + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@cspell/dict-html/-/dict-html-4.0.16.tgz", + "integrity": "sha512-9B6/Cpb5YVcYgsEAlKudun1yd4ONllYS/ZibKLYea2apPR+l2vQdARnPrP9kTqa7NUNfRKl7m9Fb6k9rjimnow==", + "license": "MIT" + }, + "node_modules/@cspell/dict-html-symbol-entities": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@cspell/dict-html-symbol-entities/-/dict-html-symbol-entities-4.0.5.tgz", + "integrity": "sha512-429alTD4cE0FIwpMucvSN35Ld87HCyuM8mF731KU5Rm4Je2SG6hmVx7nkBsLyrmH3sQukTcr1GaiZsiEg8svPA==", + "license": "MIT" + }, + "node_modules/@cspell/dict-java": { + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/@cspell/dict-java/-/dict-java-5.0.12.tgz", + "integrity": "sha512-qPSNhTcl7LGJ5Qp6VN71H8zqvRQK04S08T67knMq9hTA8U7G1sTKzLmBaDOFhq17vNX/+rT+rbRYp+B5Nwza1A==", + "license": "MIT" + }, + "node_modules/@cspell/dict-lorem-ipsum": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@cspell/dict-lorem-ipsum/-/dict-lorem-ipsum-4.0.5.tgz", + "integrity": "sha512-9a4TJYRcPWPBKkQAJ/whCu4uCAEgv/O2xAaZEI0n4y1/l18Yyx8pBKoIX5QuVXjjmKEkK7hi5SxyIsH7pFEK9Q==", + "license": "MIT" + }, + "node_modules/@cspell/dict-markdown": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@cspell/dict-markdown/-/dict-markdown-2.0.18.tgz", + "integrity": "sha512-KLRSwVrwKDz4n7bl2XQjzvaBZbGgx5QKkP5Ok1b24xaO3TpXsLhAbAn1mItvFlI2tF6Rkt83iYjQcYppywuf5Q==", + "license": "MIT", + "peerDependencies": { + "@cspell/dict-css": "^4.1.2", + "@cspell/dict-html": "^4.0.16", + "@cspell/dict-html-symbol-entities": "^4.0.5", + "@cspell/dict-typescript": "^3.2.3" + } + }, + "node_modules/@cspell/dict-node": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/@cspell/dict-node/-/dict-node-5.0.9.tgz", + "integrity": "sha512-hO+ga+uYZ/WA4OtiMEyKt5rDUlUyu3nXMf8KVEeqq2msYvAPdldKBGH7lGONg6R/rPhv53Rb+0Y1SLdoK1+7wQ==", + "license": "MIT" + }, + "node_modules/@cspell/dict-npm": { + "version": "5.2.55", + "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.2.55.tgz", + "integrity": "sha512-5xD2h3kn9ZRVbA6JFfO4VQu8VXwXsJQf7mpn099LgfaL66JnXE+wzR5dysipsren3Apdb3HlUzVqRTtnQMoVGQ==", + "license": "MIT" + }, + "node_modules/@cspell/dict-php": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-4.1.3.tgz", + "integrity": "sha512-41oKzl7rLVrrVZA/Gs0ESnP6KliEX7c+IwaaNmOL3PAoHasFDVEmIFeENIzuDdM12UcHT+MlLkAm3Qw/lS/ERA==", + "license": "MIT" + }, + "node_modules/@cspell/dict-python": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.5.2.tgz", + "integrity": "sha512-CFcTDGN/ycn45WXC5ZZ06pG09WbGKMpPm1rkMuqMP98/jwjw3iiK8c0izWRd8x027n1rOZ9kJ8f9Sd+bQ22HJg==", + "license": "MIT", + "dependencies": { + "@cspell/dict-data-science": "^2.0.16" + } + }, + "node_modules/@cspell/dict-ruby": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@cspell/dict-ruby/-/dict-ruby-5.1.4.tgz", + "integrity": "sha512-Slw1dLY/pW5liJ5Fle+MIPphIdleZkIM6STDoXCN7sy298GfbfT34sJTcSZcXzZJVXiCEAvlLp+s1YNr6DuWNg==", + "license": "MIT" + }, + "node_modules/@cspell/dict-rust": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-4.1.2.tgz", + "integrity": "sha512-O1FHrumYcO+HZti3dHfBPUdnDFkI+nbYK3pxYmiM1sr+G0ebOd6qchmswS0Wsc6ZdEVNiPYJY/gZQR6jfW3uOg==", + "license": "MIT" + }, + "node_modules/@cspell/dict-shell": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-shell/-/dict-shell-1.2.0.tgz", + "integrity": "sha512-PVctvT22lJ49niMiakO8xieY7ELCAzjSqhejWR7bAMb5AZ9F4WDEs+XdGMnoVHWeXq7K5rcepLPmEJb+37zzIw==", + "license": "MIT" + }, + "node_modules/@cspell/dict-software-terms": { + "version": "5.4.8", + "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-5.4.8.tgz", + "integrity": "sha512-7Fv/jgRghpcEcvpmrRR54gPp1l85pPLmlMua74hjhMJoWklAp905V742XR6u5HwvGRH7aBTW9euNsJULav1E6A==", + "license": "MIT" + }, + "node_modules/@cspell/dict-sql": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-sql/-/dict-sql-2.2.1.tgz", + "integrity": "sha512-qDHF8MpAYCf4pWU8NKbnVGzkoxMNrFqBHyG/dgrlic5EQiKANCLELYtGlX5auIMDLmTf1inA0eNtv74tyRJ/vg==", + "license": "MIT" + }, + "node_modules/@cspell/dict-typescript": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-typescript/-/dict-typescript-3.2.3.tgz", + "integrity": "sha512-zXh1wYsNljQZfWWdSPYwQhpwiuW0KPW1dSd8idjMRvSD0aSvWWHoWlrMsmZeRl4qM4QCEAjua8+cjflm41cQBg==", + "license": "MIT" + }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", @@ -3679,6 +3895,18 @@ "node": ">= 8" } }, + "node_modules/cspell-trie-lib": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-10.4.0.tgz", + "integrity": "sha512-3APfmYOrYEcoiDjupm3JsxLWvqa6IbJ76CqUTuIgXQH2EK0nOJ5SRKSTNP6AplDtalCs0o6VllbiRX6S81g8yw==", + "license": "MIT", + "engines": { + "node": ">=22.18.0" + }, + "peerDependencies": { + "@cspell/cspell-types": "10.4.0" + } + }, "node_modules/css": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", @@ -5004,6 +5232,12 @@ "node": ">=0.4.0" } }, + "node_modules/fflate": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.3.tgz", + "integrity": "sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==", + "license": "MIT" + }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -13706,6 +13940,156 @@ "chalk": "^4.0.0" } }, + "@cspell/cspell-types": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-10.4.0.tgz", + "integrity": "sha512-LTOrZcDSHj5BkeNSvimuV3AMF7gWjxzXUdQ7zYT/h/57/5flHuE6NPKSXS69ty8vJM0WrVh35L5aDxnCPfDzXA==", + "peer": true + }, + "@cspell/dict-companies": { + "version": "3.2.13", + "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.2.13.tgz", + "integrity": "sha512-mBJeYzCkiiWgNQxKg7zyQOpFPwcXO4IAzXGbOEFfcQ4Q0G5Fa7Kqd8z+gvnvSK7NPWKJaFmiApC6I0cka02qmQ==" + }, + "@cspell/dict-cpp": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-7.2.0.tgz", + "integrity": "sha512-hxz+OyQKV96/Bk2JYGsDuSOheYA5gd8KybXnoZMMu/mhZPnwhPi+qiS0Kjc0gLNbXjJ6wbBuXIQWi1UWpQBU/g==" + }, + "@cspell/dict-csharp": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@cspell/dict-csharp/-/dict-csharp-4.0.8.tgz", + "integrity": "sha512-qmk45pKFHSxckl5mSlbHxmDitSsGMlk/XzFgt7emeTJWLNSTUK//MbYAkBNRtfzB4uD7pAFiKgpKgtJrTMRnrQ==" + }, + "@cspell/dict-css": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-css/-/dict-css-4.1.2.tgz", + "integrity": "sha512-+ylGoKdwZ2sVOCOnU2Eq5wDZx+RaVX3HoKyNHGGsFvhSw6IidQ6tH/mAPKBDofViHJoWCPNlklE0lTr6MDG3QA==" + }, + "@cspell/dict-data-science": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/@cspell/dict-data-science/-/dict-data-science-2.0.16.tgz", + "integrity": "sha512-M72mxv5asuAnORurz4iXRJ+Tw9XBq6eu7D2Ne7biP0Z1RciKGNxXWu9JycA/KlVvK1hAlKj/fANlXhuEWpXKFg==" + }, + "@cspell/dict-docker": { + "version": "1.1.17", + "resolved": "https://registry.npmjs.org/@cspell/dict-docker/-/dict-docker-1.1.17.tgz", + "integrity": "sha512-OcnVTIpHIYYKhztNTyK8ShAnXTfnqs43hVH6p0py0wlcwRIXe5uj4f12n7zPf2CeBI7JAlPjEsV0Rlf4hbz/xQ==" + }, + "@cspell/dict-en_us": { + "version": "4.4.43", + "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.4.43.tgz", + "integrity": "sha512-RK0zfFXSPi0G/zmV9YgUhS2xw9eTV/8DtQ+ouLIiRZ8ejWRt2zhAonu5di+qmIhzhQ62fg7d3tMz3WwRy82yJA==" + }, + "@cspell/dict-en-gb": { + "version": "5.0.38", + "resolved": "https://registry.npmjs.org/@cspell/dict-en-gb/-/dict-en-gb-5.0.38.tgz", + "integrity": "sha512-xLuoDSM5tzEF2fpQWNE4QXxZCNdjkZbdRQ7xTjrjqJGHwOjNlSLvZoh/GYQsQ1ROLe/jXPENbQn5M5DhjrSaDg==" + }, + "@cspell/dict-filetypes": { + "version": "3.0.18", + "resolved": "https://registry.npmjs.org/@cspell/dict-filetypes/-/dict-filetypes-3.0.18.tgz", + "integrity": "sha512-yU7RKD/x1IWmDLzWeiItMwgV+6bUcU/af23uS0+uGiFUbsY1qWV/D4rxlAAO6Z7no3J2z8aZOkYIOvUrJq0Rcw==" + }, + "@cspell/dict-fonts": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@cspell/dict-fonts/-/dict-fonts-4.0.6.tgz", + "integrity": "sha512-aR/0csY01dNb0A1tw/UmN9rKgHruUxsYsvXu6YlSBJFu60s26SKr/k1o4LavpHTQ+lznlYMqAvuxGkE4Flliqw==" + }, + "@cspell/dict-fullstack": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/@cspell/dict-fullstack/-/dict-fullstack-3.2.9.tgz", + "integrity": "sha512-diZX+usW5aZ4/b2T0QM/H/Wl9aNMbdODa1Jq0ReBr/jazmNeWjd+PyqeVgzd1joEaHY+SAnjrf/i9CwKd2ZtWQ==" + }, + "@cspell/dict-git": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-git/-/dict-git-3.1.1.tgz", + "integrity": "sha512-XvuGVYj9YEu4EzntqyhH8XlTRyy57C6j8oxkIbUQfR2UYzxZGAP77XHl7qY7eC/40r/haDwnBaccyFR6BRmUCg==" + }, + "@cspell/dict-golang": { + "version": "6.0.29", + "resolved": "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-6.0.29.tgz", + "integrity": "sha512-EZCgfxrr5lPnYQLmSvB6YtpfoDFt2KKxAD4ppq2xGSIgDFXAF7Mv4doiXIFUQaynCBIEfAMl3f/uDfrIUo4fyQ==" + }, + "@cspell/dict-html": { + "version": "4.0.16", + "resolved": "https://registry.npmjs.org/@cspell/dict-html/-/dict-html-4.0.16.tgz", + "integrity": "sha512-9B6/Cpb5YVcYgsEAlKudun1yd4ONllYS/ZibKLYea2apPR+l2vQdARnPrP9kTqa7NUNfRKl7m9Fb6k9rjimnow==" + }, + "@cspell/dict-html-symbol-entities": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@cspell/dict-html-symbol-entities/-/dict-html-symbol-entities-4.0.5.tgz", + "integrity": "sha512-429alTD4cE0FIwpMucvSN35Ld87HCyuM8mF731KU5Rm4Je2SG6hmVx7nkBsLyrmH3sQukTcr1GaiZsiEg8svPA==" + }, + "@cspell/dict-java": { + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/@cspell/dict-java/-/dict-java-5.0.12.tgz", + "integrity": "sha512-qPSNhTcl7LGJ5Qp6VN71H8zqvRQK04S08T67knMq9hTA8U7G1sTKzLmBaDOFhq17vNX/+rT+rbRYp+B5Nwza1A==" + }, + "@cspell/dict-lorem-ipsum": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@cspell/dict-lorem-ipsum/-/dict-lorem-ipsum-4.0.5.tgz", + "integrity": "sha512-9a4TJYRcPWPBKkQAJ/whCu4uCAEgv/O2xAaZEI0n4y1/l18Yyx8pBKoIX5QuVXjjmKEkK7hi5SxyIsH7pFEK9Q==" + }, + "@cspell/dict-markdown": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/@cspell/dict-markdown/-/dict-markdown-2.0.18.tgz", + "integrity": "sha512-KLRSwVrwKDz4n7bl2XQjzvaBZbGgx5QKkP5Ok1b24xaO3TpXsLhAbAn1mItvFlI2tF6Rkt83iYjQcYppywuf5Q==", + "requires": {} + }, + "@cspell/dict-node": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/@cspell/dict-node/-/dict-node-5.0.9.tgz", + "integrity": "sha512-hO+ga+uYZ/WA4OtiMEyKt5rDUlUyu3nXMf8KVEeqq2msYvAPdldKBGH7lGONg6R/rPhv53Rb+0Y1SLdoK1+7wQ==" + }, + "@cspell/dict-npm": { + "version": "5.2.55", + "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.2.55.tgz", + "integrity": "sha512-5xD2h3kn9ZRVbA6JFfO4VQu8VXwXsJQf7mpn099LgfaL66JnXE+wzR5dysipsren3Apdb3HlUzVqRTtnQMoVGQ==" + }, + "@cspell/dict-php": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-4.1.3.tgz", + "integrity": "sha512-41oKzl7rLVrrVZA/Gs0ESnP6KliEX7c+IwaaNmOL3PAoHasFDVEmIFeENIzuDdM12UcHT+MlLkAm3Qw/lS/ERA==" + }, + "@cspell/dict-python": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.5.2.tgz", + "integrity": "sha512-CFcTDGN/ycn45WXC5ZZ06pG09WbGKMpPm1rkMuqMP98/jwjw3iiK8c0izWRd8x027n1rOZ9kJ8f9Sd+bQ22HJg==", + "requires": { + "@cspell/dict-data-science": "^2.0.16" + } + }, + "@cspell/dict-ruby": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@cspell/dict-ruby/-/dict-ruby-5.1.4.tgz", + "integrity": "sha512-Slw1dLY/pW5liJ5Fle+MIPphIdleZkIM6STDoXCN7sy298GfbfT34sJTcSZcXzZJVXiCEAvlLp+s1YNr6DuWNg==" + }, + "@cspell/dict-rust": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-4.1.2.tgz", + "integrity": "sha512-O1FHrumYcO+HZti3dHfBPUdnDFkI+nbYK3pxYmiM1sr+G0ebOd6qchmswS0Wsc6ZdEVNiPYJY/gZQR6jfW3uOg==" + }, + "@cspell/dict-shell": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@cspell/dict-shell/-/dict-shell-1.2.0.tgz", + "integrity": "sha512-PVctvT22lJ49niMiakO8xieY7ELCAzjSqhejWR7bAMb5AZ9F4WDEs+XdGMnoVHWeXq7K5rcepLPmEJb+37zzIw==" + }, + "@cspell/dict-software-terms": { + "version": "5.4.8", + "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-5.4.8.tgz", + "integrity": "sha512-7Fv/jgRghpcEcvpmrRR54gPp1l85pPLmlMua74hjhMJoWklAp905V742XR6u5HwvGRH7aBTW9euNsJULav1E6A==" + }, + "@cspell/dict-sql": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@cspell/dict-sql/-/dict-sql-2.2.1.tgz", + "integrity": "sha512-qDHF8MpAYCf4pWU8NKbnVGzkoxMNrFqBHyG/dgrlic5EQiKANCLELYtGlX5auIMDLmTf1inA0eNtv74tyRJ/vg==" + }, + "@cspell/dict-typescript": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@cspell/dict-typescript/-/dict-typescript-3.2.3.tgz", + "integrity": "sha512-zXh1wYsNljQZfWWdSPYwQhpwiuW0KPW1dSd8idjMRvSD0aSvWWHoWlrMsmZeRl4qM4QCEAjua8+cjflm41cQBg==" + }, "@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", @@ -16101,6 +16485,12 @@ "which": "^2.0.1" } }, + "cspell-trie-lib": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-10.4.0.tgz", + "integrity": "sha512-3APfmYOrYEcoiDjupm3JsxLWvqa6IbJ76CqUTuIgXQH2EK0nOJ5SRKSTNP6AplDtalCs0o6VllbiRX6S81g8yw==", + "requires": {} + }, "css": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", @@ -17190,6 +17580,11 @@ "websocket-driver": ">=0.3.6" } }, + "fflate": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.3.tgz", + "integrity": "sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==" + }, "file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", diff --git a/package.json b/package.json index 9822e75b51..d8ddc2dfc0 100644 --- a/package.json +++ b/package.json @@ -95,6 +95,33 @@ ], "dependencies": { "@bugsnag/js": "^7.18.0", + "@cspell/dict-companies": "^3.2.13", + "@cspell/dict-cpp": "^7.2.0", + "@cspell/dict-csharp": "^4.0.8", + "@cspell/dict-css": "^4.1.2", + "@cspell/dict-docker": "^1.1.17", + "@cspell/dict-en_us": "^4.4.43", + "@cspell/dict-en-gb": "^5.0.38", + "@cspell/dict-filetypes": "^3.0.18", + "@cspell/dict-fonts": "^4.0.6", + "@cspell/dict-fullstack": "^3.2.9", + "@cspell/dict-git": "^3.1.1", + "@cspell/dict-golang": "^6.0.29", + "@cspell/dict-html": "^4.0.16", + "@cspell/dict-html-symbol-entities": "^4.0.5", + "@cspell/dict-java": "^5.0.12", + "@cspell/dict-lorem-ipsum": "^4.0.5", + "@cspell/dict-markdown": "^2.0.18", + "@cspell/dict-node": "^5.0.9", + "@cspell/dict-npm": "^5.2.55", + "@cspell/dict-php": "^4.1.3", + "@cspell/dict-python": "^4.5.2", + "@cspell/dict-ruby": "^5.1.4", + "@cspell/dict-rust": "^4.1.2", + "@cspell/dict-shell": "^1.2.0", + "@cspell/dict-software-terms": "^5.4.8", + "@cspell/dict-sql": "^2.2.1", + "@cspell/dict-typescript": "^3.2.3", "@floating-ui/dom": "^0.5.4", "@fortawesome/fontawesome-free": "^6.1.2", "@highlightjs/cdn-assets": "^11.5.1", @@ -107,8 +134,10 @@ "browser-mime": "^1.0.1", "codemirror": "^5.65.16", "cross-env": "^7.0.3", + "cspell-trie-lib": "^10.4.0", "devicon": "^2.15.1", "emmet": "^2.4.11", + "fflate": "^0.8.3", "file-saver": "^2.0.5", "idb-keyval": "^6.2.1", "jshint": "^2.13.5", diff --git a/src-node/package-lock.json b/src-node/package-lock.json index 2832561ed2..71533e2c4b 100644 --- a/src-node/package-lock.json +++ b/src-node/package-lock.json @@ -1,12 +1,12 @@ { "name": "@phcode/node-core", - "version": "5.5.5-0", + "version": "5.5.6-0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@phcode/node-core", - "version": "5.5.5-0", + "version": "5.5.6-0", "hasInstallScript": true, "license": "GNU-AGPL3.0", "dependencies": { diff --git a/src/command/Commands.js b/src/command/Commands.js index 6366ef6594..4d3b6085ff 100644 --- a/src/command/Commands.js +++ b/src/command/Commands.js @@ -309,6 +309,11 @@ define(function (require, exports, module) { /** Toggles whether AI features are enabled */ exports.VIEW_ENABLE_AI = "view.enableAI"; // phoenix-pro aiEnabled.js _handleToggleEnableAI() + /** Toggles the spell checker */ + exports.VIEW_TOGGLE_SPELL_CHECK = "view.toggleSpellCheck"; // phoenix-pro spell-check/main.js + /** Toggles the spelling panel visibility */ + exports.VIEW_TOGGLE_SPELLING_PANEL = "view.toggleSpellingPanel"; // phoenix-pro spell-check/main.js + /** Toggles line numbers visibility */ exports.TOGGLE_LINE_NUMBERS = "view.toggleLineNumbers"; // EditorOptionHandlers.js _getToggler() diff --git a/src/nls/root/strings.js b/src/nls/root/strings.js index 455651f51e..94ab1c8470 100644 --- a/src/nls/root/strings.js +++ b/src/nls/root/strings.js @@ -1170,6 +1170,57 @@ define({ "NO_LINT_AVAILABLE": "No linter available for {0}", "NOTHING_TO_LINT": "Nothing to lint", "COPY_ERROR": "Copy problem", + + // Spell check (Phoenix Pro) + "SPELL_CHECK_PANEL_TITLE": "Spelling", + "SPELL_CHECK_PANEL_TITLE_NONE": "No spelling issues - {0}", + "SPELL_CHECK_PANEL_TITLE_SINGLE": "1 Spelling Issue - {0}", + "SPELL_CHECK_PANEL_TITLE_MULTIPLE": "{0} Spelling Issues - {1}", + "SPELL_CHECK_STATUS_OK": "No spelling issues", + "SPELL_CHECK_STATUS_SINGLE": "1 spelling issue", + "SPELL_CHECK_STATUS_MULTIPLE": "{0} spelling issues", + "SPELL_CHECK_STATUS_CHECKING": "Checking spelling\u2026", + "SPELL_CHECK_STATUS_OFF": "Spell check is off", + "SPELL_CHECK_STATUS_OFF_LANGUAGE": "Spell check is off for {0} files", + "SPELL_CHECK_STATUS_PRO": "Spell check is available in Phoenix Pro", + "SPELL_CHECK_STATUS_NOT_AVAILABLE": "Spell check is not available for this file", + "SPELL_CHECK_STATUS_LARGE_FILE": "Large file: only the visible lines are spell checked", + "SPELL_CHECK_STATUS_ERROR": "Spell check could not load its dictionaries", + "SPELL_CHECK_STATUS_DISABLED_IN_FILE": "Spell check is disabled in this file by a cspell directive", + "SPELL_CHECK_PRO_MESSAGE": "Catch typos in comments, strings, Markdown and code names as you type, with one-click fixes and project dictionaries.", + "SPELL_CHECK_OFF_MESSAGE": "Spell check is turned off.", + "SPELL_CHECK_OFF_LANGUAGE_MESSAGE": "Spell check is turned off for {0} files.", + "SPELL_CHECK_TURN_ON": "Turn On", + "SPELL_CHECK_TURN_ON_LANGUAGE": "Turn On for {0}", + "SPELL_CHECK_NO_DOCUMENT_MESSAGE": "Open a text file to check its spelling.", + "SPELL_CHECK_NOT_AVAILABLE_MESSAGE": "Spell check is not available for this file type.", + "SPELL_CHECK_LOADING_MESSAGE": "Checking spelling\u2026", + "SPELL_CHECK_LARGE_FILE_MESSAGE": "This file is too large for a full spell check. The visible lines are still checked as you scroll.", + "SPELL_CHECK_ERROR_MESSAGE": "The spelling dictionaries could not be loaded. Check your connection and try again.", + "SPELL_CHECK_RETRY": "Try Again", + "SPELL_CHECK_NO_ISSUES_MESSAGE": "No spelling issues found - nice work!", + "SPELL_CHECK_DISABLED_IN_FILE_MESSAGE": "Spell check is disabled in this file by a cspell:disable directive.", + "SPELL_CHECK_UNKNOWN_WORD": "Unknown word", + "SPELL_CHECK_NO_SUGGESTIONS": "No suggestions", + "SPELL_CHECK_LOADING_SUGGESTIONS": "Looking up suggestions\u2026", + "SPELL_CHECK_ADD_TO_PROJECT": "Add to Project Dictionary", + "SPELL_CHECK_ADD_TO_USER": "Add to User Dictionary", + "SPELL_CHECK_IGNORE": "Ignore Word", + "SPELL_CHECK_ADD_TO_PROJECT_TOOLTIP": "Saves the word in this project's settings so everyone working on it shares it", + "SPELL_CHECK_ADD_TO_USER_TOOLTIP": "Saves the word in your personal dictionary for every project", + "SPELL_CHECK_IGNORE_TOOLTIP": "Ignores this word until {APP_NAME} restarts", + "SPELL_CHECK_REPLACE_WITH": "Replace with \u201c{0}\u201d", + "SPELL_CHECK_MORE_ISSUES": "\u2026and {0} more", + "SPELL_CHECK_SETTINGS": "Spell check settings", + "SPELL_CHECK_OPT_COMMENTS": "Check Comments", + "SPELL_CHECK_OPT_STRINGS": "Check Strings", + "SPELL_CHECK_OPT_IDENTIFIERS": "Check Code Names", + "SPELL_CHECK_OPT_LANGUAGE": "Check {0} Files", + "SPELL_CHECK_OPT_LOCALE_US": "English (US)", + "SPELL_CHECK_OPT_LOCALE_GB": "English (UK)", + "SPELL_CHECK_OPT_LOCALE_BOTH": "English (US and UK)", + "SPELL_CHECK_OPT_EDIT_PROJECT_WORDS": "Edit Project Dictionary\u2026", + "SPELL_CHECK_OPT_EDIT_USER_WORDS": "Edit User Dictionary\u2026", "FIX": "Fix", "CANNOT_FIX_TITLE": "Failed to Apply Fix", "CANNOT_FIX_SOME_TITLE": "Failed to Apply Some Fixes", @@ -1306,6 +1357,8 @@ define({ "CMD_TOGGLE_WORD_WRAP": "Word Wrap", "CMD_VIEW_TOGGLE_INSPECTION": "Lint Files on Save", "CMD_VIEW_TOGGLE_PROBLEMS": "Problems", + "CMD_VIEW_TOGGLE_SPELL_CHECK": "Spell Check", + "CMD_VIEW_TOGGLE_SPELLING_PANEL": "Spelling", "CMD_VIEW_TERMINAL": "Terminal", "CMD_VIEW_ENABLE_AI": "Enable AI", "CMD_WORKINGSET_SORT_BY_ADDED": "Sort by Added", @@ -2135,6 +2188,19 @@ define({ "DESCRIPTION_HIDE_FIRST": "true to show the first Indent Guide line else false.", "DESCRIPTION_CSS_COLOR_PREVIEW": "true to display color previews in the gutter, else false.", "DESCRIPTION_ENABLE_AI": "true to enable AI features, false to disable AI entirely.", + "DESCRIPTION_SPELL_CHECK_ENABLED": "true to check spelling in the editor (Phoenix Pro). Can be set per language.", + "DESCRIPTION_SPELL_CHECK_LOCALE": "Spelling dictionary to use.", + "DESCRIPTION_SPELL_CHECK_CHECK_COMMENTS": "true to spell check comments in code files.", + "DESCRIPTION_SPELL_CHECK_CHECK_STRINGS": "true to spell check string literals in code files.", + "DESCRIPTION_SPELL_CHECK_CHECK_IDENTIFIERS": "true to spell check variable, function and property names. Names are split on capital letters and underscores.", + "DESCRIPTION_SPELL_CHECK_MIN_WORD_LENGTH": "Words shorter than this are not spell checked.", + "DESCRIPTION_SPELL_CHECK_IGNORE_WORDS_WITH_DIGITS": "true to skip words that contain digits.", + "DESCRIPTION_SPELL_CHECK_WORDS": "Project dictionary: words to treat as correctly spelled. Set it in the project settings file to share it with everyone on the project.", + "DESCRIPTION_SPELL_CHECK_USER_WORDS": "Personal dictionary: words to treat as correctly spelled in every project.", + "DESCRIPTION_SPELL_CHECK_IGNORE_WORDS": "Words to ignore. Unlike words, these are never offered as suggestions.", + "DESCRIPTION_SPELL_CHECK_FLAG_WORDS": "Words to always mark as misspelled, even when a dictionary contains them.", + "DESCRIPTION_SPELL_CHECK_MAX_FILE_SIZE_KB": "Files larger than this size in KB only have their visible lines spell checked.", + "DESCRIPTION_SPELL_CHECK_USE_CSPELL_CONFIG": "true to also read words, ignored words, flagged words and the language from a cspell configuration file in the project root.", // Emmet "DESCRIPTION_EMMET": "true to enable Emmet, else false.", From c37ab45593a06795df440c681fc9e3b18aa3478a Mon Sep 17 00:00:00 2001 From: Pluto Date: Thu, 22 Oct 2026 22:48:15 +0530 Subject: [PATCH 5/5] fix: blurry spell check status bar icon --- src/styles/Extn-SpellCheck.less | 60 ++++++++++---------- src/styles/images/status-spelling-issues.svg | 6 ++ src/styles/images/status-spelling-ok.svg | 6 ++ 3 files changed, 41 insertions(+), 31 deletions(-) create mode 100644 src/styles/images/status-spelling-issues.svg create mode 100644 src/styles/images/status-spelling-ok.svg diff --git a/src/styles/Extn-SpellCheck.less b/src/styles/Extn-SpellCheck.less index 4033777a23..7f651cf380 100644 --- a/src/styles/Extn-SpellCheck.less +++ b/src/styles/Extn-SpellCheck.less @@ -1,39 +1,49 @@ #status-indicators #status-spelling { display: flex; align-items: center; - gap: 4px; - padding: 0 7px; - border: none; + height: (@bc-bg-status-bar-height - 1px); + box-sizing: border-box; + padding: 0 9px; + border-left: none; + border-right: 1px solid @bc-panel-border; cursor: pointer; color: @bc-text-thin-quiet; .dark & { + border-right-color: @dark-bc-panel-separator; color: @dark-bc-text-thin-quiet; } - i { - font-size: 12px; + .spelling-icon { + width: 16px; + height: 14px; + background-color: currentColor; + -webkit-mask-image: url(images/status-spelling-ok.svg); + mask-image: url(images/status-spelling-ok.svg); + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + -webkit-mask-size: contain; + mask-size: contain; } - .spelling-count { - font-size: 11px; - line-height: 1; + &.spelling-ok .spelling-icon { + background-color: @spell-underline-text; } - &.spelling-ok i { - color: @spell-underline-text; + &.spelling-issues .spelling-icon, + &.spelling-error .spelling-icon { + -webkit-mask-image: url(images/status-spelling-issues.svg); + mask-image: url(images/status-spelling-issues.svg); } - &.spelling-issues { - color: @bc-text; - - .dark & { - color: @dark-bc-text; - } + &.spelling-issues .spelling-icon { + background-color: #e39a2c; + } - i { - color: #e39a2c; - } + &.spelling-error .spelling-icon { + background-color: @error-underline-text; } &.spelling-off, @@ -41,18 +51,6 @@ &.spelling-unavailable { opacity: 0.55; } - - &.spelling-error i { - color: @error-underline-text; - } - - &:hover { - background-color: rgba(0, 0, 0, 0.03); - } - - &:active { - background-color: rgba(0, 0, 0, 0.05); - } } #spelling-panel { diff --git a/src/styles/images/status-spelling-issues.svg b/src/styles/images/status-spelling-issues.svg new file mode 100644 index 0000000000..4ec58b9b6d --- /dev/null +++ b/src/styles/images/status-spelling-issues.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/styles/images/status-spelling-ok.svg b/src/styles/images/status-spelling-ok.svg new file mode 100644 index 0000000000..048ee5fadf --- /dev/null +++ b/src/styles/images/status-spelling-ok.svg @@ -0,0 +1,6 @@ + + + + + +