GithubHelp home page GithubHelp logo

console's Introduction

Lite XL

CI Discord Badge Image

screenshot-dark

A lightweight text editor written in Lua, adapted from lite.

Please refer to our website for the user and developer documentation, including build instructions details. A quick build guide is described below.

Lite XL has support for high DPI display on Windows and Linux and, since 1.16.7 release, it supports retina displays on macOS.

Please note that Lite XL is compatible with lite for most plugins and all color themes. We provide a separate lite-xl-plugins repository for Lite XL, because in some cases some adaptations may be needed to make them work better with Lite XL. The repository with modified plugins is https://github.com/lite-xl/lite-xl-plugins.

The changes and differences between Lite XL and rxi/lite are listed in the changelog.

Overview

Lite XL is derived from lite. It is a lightweight text editor written mostly in Lua — it aims to provide something practical, pretty, small and fast easy to modify and extend, or to use without doing either.

The aim of Lite XL compared to lite is to be more user friendly, improve the quality of font rendering, and reduce CPU usage.

Customization

Additional functionality can be added through plugins which are available in the plugins repository or in the Lite XL plugins repository.

Additional color themes can be found in the colors repository. These color themes are bundled with all releases of Lite XL by default.

Quick Build Guide

If you compile Lite XL yourself, it is recommended to use the script build-packages.sh:

bash build-packages.sh -h

The script will run Meson and create a tar compressed archive with the application or, for Windows, a zip file. Lite XL can be easily installed by unpacking the archive in any directory of your choice.

Otherwise the following is an example of basic commands if you want to customize the build:

meson setup --buildtype=release --prefix <prefix> build
meson compile -C build
DESTDIR="$(pwd)/lite-xl" meson install --skip-subprojects -C build

where <prefix> might be one of /, /usr or /opt, the default is /. To build a bundle application on macOS:

meson setup --buildtype=release --Dbundle=true --prefix / build
meson compile -C build
DESTDIR="$(pwd)/Lite XL.app" meson install --skip-subprojects -C build

Please note that the package is relocatable to any prefix and the option prefix affects only the place where the application is actually installed.

Installing Prebuilt

Head over to releases and download the version for your operating system.

The prebuilt releases supports the following OSes:

  • Windows 7 and above
  • Ubuntu 18.04 and above (glibc 2.27 and above)
  • OS X El Capitan and above (version 10.11 and above)

Some distributions may provide custom binaries for their platforms.

Windows

Lite XL comes with installers on Windows for typical installations. Alternatively, we provide ZIP archives that you can download and extract anywhere and run directly.

To make Lite XL portable (e.g. running Lite XL from a thumb drive), simply create a user folder where lite-xl.exe is located. Lite XL will load and store all your configurations and plugins in the folder.

macOS

We provide DMG files for macOS. Simply drag the program into your Applications folder.

Important Newer versions of Lite XL are signed with a self-signed certificate, so you'll have to follow these steps when running Lite XL for the first time.

  1. Find Lite XL in Finder (do not open it in Launchpad).
  2. Control-click Lite XL, then choose Open from the shortcut menu.
  3. Click Open in the popup menu.

The correct steps may vary between macOS versions, so you should refer to the macOS User Guide.

On an older version of Lite XL, you will need to run these commands instead:

# clears attributes from the directory
xattr -cr /Applications/Lite\ XL.app

Otherwise, macOS will display a very misleading error saying that the application is damaged.

Linux

Unzip the file and cd into the lite-xl directory:

tar -xzf <file>
cd lite-xl

To run lite-xl without installing:

./lite-xl

To install lite-xl copy files over into appropriate directories:

rm -rf  $HOME/.local/share/lite-xl $HOME/.local/bin/lite-xl
mkdir -p $HOME/.local/bin && cp lite-xl $HOME/.local/bin/
mkdir -p $HOME/.local/share/lite-xl && cp -r data/* $HOME/.local/share/lite-xl/

Add Lite XL to PATH

To run Lite XL from the command line, you must add it to PATH.

If $HOME/.local/bin is not in PATH:

echo -e 'export PATH=$PATH:$HOME/.local/bin' >> $HOME/.bashrc

Alternatively on recent versions of GNOME and KDE Plasma, you can add $HOME/.local/bin to PATH via ~/.config/environment.d/envvars.conf:

PATH=$HOME/.local/bin:$PATH

Note Some systems might not load .bashrc when logging in. This can cause problems with launching applications from the desktop / menu.

Add Lite XL to application launchers

To get the icon to show up in app launcher, you need to create a desktop entry and put it into /usr/share/applications or ~/.local/share/applications.

Here is an example for a desktop entry in ~/.local/share/applications/com.lite_xl.LiteXL.desktop, assuming Lite XL is in PATH:

[Desktop Entry]
Type=Application
Name=Lite XL
Comment=A lightweight text editor written in Lua
Exec=lite-xl %F
Icon=lite-xl
Terminal=false
StartupWMClass=lite-xl
Categories=Development;IDE;
MimeType=text/plain;inode/directory;

To get the icon to show up in app launcher immediately, run:

xdg-desktop-menu forceupdate

Alternatively, you may log out and log in again.

Uninstall

To uninstall Lite XL, run:

rm -f $HOME/.local/bin/lite-xl
rm -rf $HOME/.local/share/icons/hicolor/scalable/apps/lite-xl.svg \
          $HOME/.local/share/applications/com.lite_xl.LiteXL.desktop \
          $HOME/.local/share/metainfo/com.lite_xl.LiteXL.appdata.xml \
          $HOME/.local/share/lite-xl

Contributing

Any additional functionality that can be added through a plugin should be done as a plugin, after which a pull request to the Lite XL plugins repository can be made.

Pull requests to improve or modify the editor itself are welcome.

Licenses

This project is free software; you can redistribute it and/or modify it under the terms of the MIT license. See LICENSE for details.

See the licenses file for details on licenses used by the required dependencies.

console's People

Contributors

cfuendev avatar dev-dwarf avatar franko avatar guldoman avatar jgmdev avatar joedestroy avatar rxi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

console's Issues

Node issues on Windows

When I do node --help I get:
image

The error will vary depending on the node version you use. This happened in the new lts and the latest version. On Linux, where it works, I have an older version of node but when testing that same version on windows I still get the error.

I tried using lite-xl 2.0.3 and lite.xl 2.0.0 and both had the issue on windows.

Love.exe creates its own console, instead of using the launch console so the output is not captured

I'm not sure how to get the behavior shown in the picture, on the readme.md file?

Love.exe does not seem to use the stdout of the launching process, so if I run love --console . with lite-xl's console, I get no output.

How can I execute a Love2d project and get output, like in the picture? (Taken from readme)

https://user-images.githubusercontent.com/3920290/81343656-49325a00-90ad-11ea-8647-ff39d8f1d730.gif

No all compilers return line and col number, but a range!

Pawn language return a range where warning / error was like this

/home/SmileY/antiflood.sma(22 -- 24) : warning 215: expression has no effect

I suggest to filter column and line using string.match inside tonumber:

function ConsoleView:on_mouse_pressed(...)
  local caught = ConsoleView.super.on_mouse_pressed(self, ...)
  if caught then
    return
  end
  local item = output[self.hovered_idx]
  if item then
    local file, line, col = item.text:match(item.file_pattern)
    local resolved_file = resolve_file(item.file_prefix, file)
    if not resolved_file then
      -- fixes meson output which adds ../ for build sub directories
      resolved_file = resolve_file(
        item.file_prefix,
        file:gsub("%.%./", ""):gsub("^%./", "")
      )
    end
    if not resolved_file then
      core.error("Couldn't resolve file \"%s\"", file)
      return
    end
    core.try(function()
      core.root_view:open_doc(core.open_doc(resolved_file))
      line = tonumber(string.match(line, "%d+")) or 1
      col = tonumber(string.match(col, "%d+")) or 1
      core.add_thread(function()
        core.active_view.doc:set_selection(line, col)
      end)
    end)
  end
end

My console run command was

          -- Run console command
          console.run
          {
            command         = compileCommand,
            file_pattern    = "(.*)%((.*)%) : (.*)",
            file_prefix     = ".",
            cwd             = ".",
            error_pattern   = "error",
            warning_pattern = "warning",
            on_complete     = function()            
              core.log("AMX Mod X Compiler: Compilation Complete")
            end
          }

Update to work with Lite XL 2.0

The mod-version tag needs to be changed but that's not enough.

When closing the documents the console remains with a broken layout.

We may also consider upgrade the plugin to use "reproc" to create processes.

REPL loop.

Hello, I want to extend this console to something more like terminal. But I can't figure out how to spawn REPL process, currently I'm
doing ...

local proc, err = process.start(command, { cwd=opt.cwd, stdin = process.REDIRECT_DISCARD, timeout=process.WAIT_INFINITE })
local text = proc:read_stdout()
while proc:running() do
  if text ~= nil then
    push_output(text, opt)
  end
  coroutine.yield(0.1)
  text = proc:read_stdout()
end
core.log("process is stopped")

but spawned process exit immediately after printing version information and >>> e.g for python it's a

Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:20:19) [MSC v.1925 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

Googling for REPL and reproc doesn't help, only one issue but it's unclear is it fixed or not.

Closing opened files

Hey!

I've noticed that you basically can't close opened loop app. Ctrl-c is not working (which is obvious) but there is no option to cancel operation. Shortcut or command would be great cause for example it's impossible for me to exit npm when it's running without reseting LiteXL and killing process by default terminal.

Best wishes :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.