macOS fixes.

This commit is contained in:
Martín Lucas Golini
2022-11-05 15:20:09 -03:00
parent d49acfcb6e
commit 4fb79c2771
6 changed files with 64 additions and 12 deletions

View File

@@ -22,4 +22,4 @@ jobs:
- name: Build
run: |
./premake5 --with-mojoAL gmake2
make -C make/macosx/ -j`nproc` all
make -C make/macosx/ -j$(nproc) all

View File

@@ -779,12 +779,12 @@ workspace "eepp"
project "efsw-static"
kind "StaticLib"
language "C++"
cppdialect "C++17"
defines { "EFSW_USE_CXX11" }
targetdir("libs/" .. os.target() .. "/thirdparty/")
incdirs { "src/thirdparty/efsw/include", "src/thirdparty/efsw/src" }
files { "src/thirdparty/efsw/src/efsw/*.cpp" }
build_base_cpp_configuration( "efsw" )
defines { "EFSW_USE_CXX11" }
cppdialect "C++17"
filter "system:windows"
files { "src/thirdparty/efsw/src/efsw/platform/win/*.cpp" }
excludes {
@@ -826,11 +826,11 @@ workspace "eepp"
project "eterm-static"
kind "StaticLib"
language "C++"
cppdialect "C++17"
targetdir("libs/" .. os.target() .. "/")
incdirs { "include", "src/modules/eterm/include/","src/modules/eterm/src/" }
files { "src/modules/eterm/src/**.cpp" }
build_base_cpp_configuration( "eterm" )
cppdialect "C++17"
filter "action:not vs*"
buildoptions { "-Wall" }

View File

@@ -1,6 +1,7 @@
../../README.md
../../TODO.md
../../bin/assets/colorschemes/colorschemes.conf
../../bin/assets/colorschemes/terminalcolorschemes.conf
../../bin/assets/ee.ini
../../bin/assets/plugins/formatters.json
../../bin/assets/plugins/linters.json
@@ -9,6 +10,7 @@
../../bin/assets/layouts/test.xml
../../bin/assets/layouts/test2.xml
../../bin/assets/layouts/test_widgets.xml
../../bin/assets/plugins/lspclient.json
../../bin/assets/ui/breeze.css
../../bin/assets/ui/uitheme.css
../../docs/articles/cssspecification.md
@@ -50,7 +52,6 @@
../../include/eepp/graphics/batchrenderer.hpp
../../include/eepp/graphics/blendmode.hpp
../../include/eepp/graphics/circledrawable.hpp
../../include/eepp/graphics/console.hpp
../../include/eepp/graphics/convexshapedrawable.hpp
../../include/eepp/graphics/drawablegroup.hpp
../../include/eepp/graphics/drawable.hpp
@@ -257,6 +258,7 @@
../../include/eepp/system/pack.hpp
../../include/eepp/system/packmanager.hpp
../../include/eepp/system/pak.hpp
../../include/eepp/system/process.hpp
../../include/eepp/system/rc4.hpp
../../include/eepp/system/resourceloader.hpp
../../include/eepp/system/resourcemanager.hpp
@@ -327,6 +329,7 @@
../../include/eepp/ui/css/stylesheetspecification.hpp
../../include/eepp/ui/css/stylesheetstyle.hpp
../../include/eepp/ui/css/stylesheetvariable.hpp
../../include/eepp/ui/css/timingfunction.hpp
../../include/eepp/ui/css/transitiondefinition.hpp
../../include/eepp/ui/doc/syntaxcolorscheme.hpp
../../include/eepp/ui/doc/syntaxdefinition.hpp
@@ -340,6 +343,7 @@
../../include/eepp/ui/doc/undostack.hpp
../../include/eepp/ui/keyboardshortcut.hpp
../../include/eepp/ui/marginmove/scale.hpp
../../include/eepp/ui/models/csspropertiesmodel.hpp
../../include/eepp/ui/models/filesystemmodel.hpp
../../include/eepp/ui/models/itemlistmodel.hpp
../../include/eepp/ui/models/model.hpp
@@ -352,12 +356,17 @@
../../include/eepp/ui/tools/textureatlaseditor.hpp
../../include/eepp/ui/tools/uicodeeditorsplitter.hpp
../../include/eepp/ui/tools/uicolorpicker.hpp
../../include/eepp/ui/tools/uidocfindreplace.hpp
../../include/eepp/ui/tools/uiwidgetinspector.hpp
../../include/eepp/ui/uiabstractview.hpp
../../include/eepp/ui/uibackgrounddrawable.hpp
../../include/eepp/ui/uiborderdrawable.hpp
../../include/eepp/ui/uicheckbox.hpp
../../include/eepp/ui/uiclip.hpp
../../include/eepp/ui/uicodeeditor.hpp
../../include/eepp/ui/uicombobox.hpp
../../include/eepp/ui/uiconsole.hpp
../../include/eepp/ui/uidatabind.hpp
../../include/eepp/ui/uidropdownlist.hpp
../../include/eepp/ui/uieventdispatcher.hpp
../../include/eepp/ui/uifiledialog.hpp
@@ -429,6 +438,7 @@
../../include/eepp/ui/uiwidgettable.hpp
../../include/eepp/ui/uiwidgettablerow.hpp
../../include/eepp/ui/uiwindow.hpp
../../include/eepp/ui/widgetcommandexecuter.hpp
../../include/eepp/version.hpp
../../include/eepp/window/base.hpp
../../include/eepp/window/clipboard.hpp
@@ -441,7 +451,6 @@
../../include/eepp/window/inputfinger.hpp
../../include/eepp/window/inputhelper.hpp
../../include/eepp/window/input.hpp
../../include/eepp/window/inputtextbuffer.hpp
../../include/eepp/window/joycodes.hpp
../../include/eepp/window/joystick.hpp
../../include/eepp/window/joystickmanager.hpp
@@ -525,7 +534,6 @@
../../src/eepp/graphics/batchrenderer.cpp
../../src/eepp/graphics/blendmode.cpp
../../src/eepp/graphics/circledrawable.cpp
../../src/eepp/graphics/console.cpp
../../src/eepp/graphics/convexshapedrawable.cpp
../../src/eepp/graphics/drawable.cpp
../../src/eepp/graphics/drawablegroup.cpp
@@ -775,6 +783,7 @@
../../src/eepp/system/platform/win/threadimpl.hpp
../../src/eepp/system/platform/win/threadlocalimpl.cpp
../../src/eepp/system/platform/win/threadlocalimpl.hpp
../../src/eepp/system/process.cpp
../../src/eepp/system/rc4.cpp
../../src/eepp/system/resourceloader.cpp
../../src/eepp/system/sys.cpp
@@ -811,6 +820,7 @@
../../src/eepp/ui/css/stylesheetspecification.cpp
../../src/eepp/ui/css/stylesheetstyle.cpp
../../src/eepp/ui/css/stylesheetvariable.cpp
../../src/eepp/ui/css/timingfunction.cpp
../../src/eepp/ui/css/transitiondefinition.cpp
../../src/eepp/ui/doc/syntaxcolorscheme.cpp
../../src/eepp/ui/doc/syntaxdefinition.cpp
@@ -834,12 +844,16 @@
../../src/eepp/ui/tools/textureatlastextureregioneditor.hpp
../../src/eepp/ui/tools/uicodeeditorsplitter.cpp
../../src/eepp/ui/tools/uicolorpicker.cpp
../../src/eepp/ui/tools/uidocfindreplace.cpp
../../src/eepp/ui/tools/uiwidgetinspector.cpp
../../src/eepp/ui/uiabstractview.cpp
../../src/eepp/ui/uibackgrounddrawable.cpp
../../src/eepp/ui/uiborderdrawable.cpp
../../src/eepp/ui/uicheckbox.cpp
../../src/eepp/ui/uiclip.cpp
../../src/eepp/ui/uicodeeditor.cpp
../../src/eepp/ui/uicombobox.cpp
../../src/eepp/ui/uiconsole.cpp
../../src/eepp/ui/uidropdownlist.cpp
../../src/eepp/ui/uieventdispatcher.cpp
../../src/eepp/ui/uifiledialog.cpp
@@ -906,6 +920,7 @@
../../src/eepp/ui/uiwidgettable.cpp
../../src/eepp/ui/uiwidgettablerow.cpp
../../src/eepp/ui/uiwindow.cpp
../../src/eepp/ui/widgetcommandexecuter.hpp
../../src/eepp/window/backend/allegro5/cbackendal.hpp
../../src/eepp/window/backend/allegro5/cclipboardal.cpp
../../src/eepp/window/backend/allegro5/cclipboardal.hpp
@@ -984,7 +999,6 @@
../../src/eepp/window/input.cpp
../../src/eepp/window/inputfinger.cpp
../../src/eepp/window/inputhelper.cpp
../../src/eepp/window/inputtextbuffer.cpp
../../src/eepp/window/joystick.cpp
../../src/eepp/window/joystickmanager.cpp
../../src/eepp/window/keycodes.cpp
@@ -1010,9 +1024,11 @@
../../src/modules/eterm/include/eterm/terminal/ipseudoterminal.hpp
../../src/modules/eterm/include/eterm/terminal/iterminaldisplay.hpp
../../src/modules/eterm/include/eterm/terminal/pseudoterminal.hpp
../../src/modules/eterm/include/eterm/terminal/terminalcolorscheme.hpp
../../src/modules/eterm/include/eterm/terminal/terminaldisplay.hpp
../../src/modules/eterm/include/eterm/terminal/terminalemulator.hpp
../../src/modules/eterm/include/eterm/terminal/terminaltypes.hpp
../../src/modules/eterm/include/eterm/ui/uiterminal.hpp
../../src/modules/eterm/src/eterm/system/autohandle.cpp
../../src/modules/eterm/src/eterm/system/pipe.cpp
../../src/modules/eterm/src/eterm/system/process.cpp
@@ -1021,11 +1037,13 @@
../../src/modules/eterm/src/eterm/terminal/iterminaldisplay.cpp
../../src/modules/eterm/src/eterm/terminal/nonspacing.hpp
../../src/modules/eterm/src/eterm/terminal/pseudoterminal.cpp
../../src/modules/eterm/src/eterm/terminal/terminalcolorscheme.cpp
../../src/modules/eterm/src/eterm/terminal/terminaldisplay.cpp
../../src/modules/eterm/src/eterm/terminal/terminalemulator.cpp
../../src/modules/eterm/src/eterm/terminal/types.hpp
../../src/modules/eterm/src/eterm/terminal/wide.hpp
../../src/modules/eterm/src/eterm/terminal/windowserrors.hpp
../../src/modules/eterm/src/eterm/ui/uiterminal.cpp
../../src/test/eetest.cpp
../../src/tests/test_all/test.cpp
../../src/tests/test_all/test.hpp
@@ -1149,11 +1167,25 @@
../../src/tools/ecode/notificationcenter.hpp
../../src/tools/ecode/plugins/linter/linterplugin.cpp
../../src/tools/ecode/plugins/linter/linterplugin.hpp
../../src/tools/ecode/plugins/lsp/lspclientplugin.cpp
../../src/tools/ecode/plugins/lsp/lspclientplugin.hpp
../../src/tools/ecode/plugins/lsp/lspclientprotocol.hpp
../../src/tools/ecode/plugins/lsp/lspclientserver.cpp
../../src/tools/ecode/plugins/lsp/lspclientserver.hpp
../../src/tools/ecode/plugins/lsp/lspclientservermanager.cpp
../../src/tools/ecode/plugins/lsp/lspclientservermanager.hpp
../../src/tools/ecode/plugins/lsp/lspdefinition.hpp
../../src/tools/ecode/plugins/lsp/lspdocumentclient.cpp
../../src/tools/ecode/plugins/lsp/lspdocumentclient.hpp
../../src/tools/ecode/plugins/pluginmanager.cpp
../../src/tools/ecode/plugins/pluginmanager.hpp
../../src/tools/ecode/projectdirectorytree.cpp
../../src/tools/ecode/projectdirectorytree.hpp
../../src/tools/ecode/projectsearch.cpp
../../src/tools/ecode/projectsearch.hpp
../../src/tools/ecode/scopedop.hpp
../../src/tools/ecode/terminalmanager.cpp
../../src/tools/ecode/terminalmanager.hpp
../../src/tools/ecode/uicodeeditorsplitter.cpp
../../src/tools/ecode/uicodeeditorsplitter.hpp
../../src/tools/ecode/uitreeviewglobalsearch.cpp
@@ -1166,3 +1198,4 @@
../../src/tools/textureatlaseditor/textureatlaseditor.cpp
../../src/tools/texturepacker/texturepacker.cpp
../../src/tools/uieditor/uieditor.cpp
../../src/tools/uieditor/uieditor.hpp

View File

@@ -5,6 +5,9 @@
#include <eepp/system/filesystem.hpp>
#include <eepp/system/lock.hpp>
#include <eepp/system/process.hpp>
#if EE_PLATFORM == EE_PLATFORM_MACOSX
#define SUBPROCESS_USE_POSIX_SPAWN
#endif
#include <thirdparty/subprocess/subprocess.h>
#include <vector>

View File

@@ -25,7 +25,7 @@ LSPClientPlugin::LSPClientPlugin( const PluginManager* pluginManager ) :
LSPClientPlugin::~LSPClientPlugin() {
mClosing = true;
Lock l( mDocMutex );
for ( auto editor : mEditors ) {
for ( const auto &editor : mEditors ) {
for ( auto& kb : mKeyBindings ) {
editor.first->getKeyBindings().removeCommandKeybind( kb.first );
if ( editor.first->hasDocument() )
@@ -33,6 +33,14 @@ LSPClientPlugin::~LSPClientPlugin() {
}
editor.first->unregisterPlugin( this );
}
if ( nullptr == mManager->getSplitter() )
return;
for ( const auto& editor : mEditorsTags ) {
if ( mManager->getSplitter()->editorExists( editor.first ) ) {
for ( const auto& tag : editor.second )
editor.first->removeActionsByTag( tag );
}
}
}
void LSPClientPlugin::update( UICodeEditor* ) {
@@ -249,6 +257,7 @@ void LSPClientPlugin::onRegister( UICodeEditor* editor ) {
} ) );
mEditors.insert( { editor, listeners } );
mEditorsTags.insert( { editor, {} } );
mEditorDocs[editor] = editor->getDocumentRef().get();
if ( mReady && editor->hasDocument() && editor->getDocument().hasFilepath() )
@@ -272,6 +281,7 @@ void LSPClientPlugin::onUnregister( UICodeEditor* editor ) {
for ( auto listener : cbs )
editor->removeEventListener( listener );
mEditors.erase( editor );
mEditorsTags.erase( editor );
mEditorDocs.erase( editor );
for ( auto editor : mEditorDocs )
if ( editor.second == doc )
@@ -329,12 +339,17 @@ TextPosition currentMouseTextPosition( UICodeEditor* editor ) {
}
bool LSPClientPlugin::onMouseMove( UICodeEditor* editor, const Vector2i& position, const Uint32& ) {
Uint32 tag = String::hash( editor->getDocument().getFilePath() );
String::HashType tag = String::hash( editor->getDocument().getFilePath() );
editor->removeActionsByTag( tag );
mEditorsTags[editor].insert( tag );
editor->runOnMainThread(
[&, editor, position]() {
[&, editor, position, tag]() {
mEditorsTags[editor].erase( tag );
mThreadPool->run( [&, editor, position]() {
mClientManager.getOneLSPClientServer( editor )->documentHover(
auto server = mClientManager.getOneLSPClientServer( editor );
if ( server == nullptr )
return;
server->documentHover(
editor->getDocument().getURI(), currentMouseTextPosition( editor ),
[&, editor, position]( const LSPHover& resp ) {
if ( resp.range.isValid() && !resp.contents.empty() ) {

View File

@@ -70,6 +70,7 @@ class LSPClientPlugin : public UICodeEditorPlugin {
Clock mClock;
Mutex mDocMutex;
std::unordered_map<UICodeEditor*, std::vector<Uint32>> mEditors;
std::unordered_map<UICodeEditor*, std::set<String::HashType>> mEditorsTags;
std::set<TextDocument*> mDocs;
std::unordered_map<UICodeEditor*, TextDocument*> mEditorDocs;
LSPClientServerManager mClientManager;