Skip to content
This repository was archived by the owner on Jun 25, 2020. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
909bf64
#69 Remove old implementation
zalox Nov 4, 2015
8c3d52d
Cleanup of cmakelists and boost python bindings
zalox Nov 5, 2015
3ea6255
Working boost/pybind impl
zalox Nov 11, 2015
86e5a9c
Working python impreter and importing of plugins, just api defenition…
zalox Nov 13, 2015
7d2f4a9
#69 Testing different approches
zalox Nov 27, 2015
1970f66
Working implementation of python interpreter
zalox Dec 1, 2015
88fb4ec
Merged with master
zalox Dec 1, 2015
5decfda
Update submodule
zalox Dec 1, 2015
661f0a5
Use stable pybind11 branch
zalox Dec 1, 2015
b7dfb2d
Add install for library as well
zalox Dec 1, 2015
f875aad
#69 Now safely executes module code
zalox Dec 2, 2015
7753613
Application now stores the parameter array
zalox Dec 2, 2015
9157b79
Notebook getters now returns nullptr instead of throwing
zalox Dec 2, 2015
c994409
Add more python bindings
zalox Dec 2, 2015
ab4c6c7
Minor readability change
zalox Dec 2, 2015
b8aecf2
Rename api.* to more appropriate name
zalox Dec 2, 2015
e676ba0
Plugins now have menu interaction
zalox Dec 5, 2015
fa1db41
Better error messages
zalox Dec 5, 2015
614c083
Merge with master
zalox Dec 5, 2015
834bcda
Fix compile warning
zalox Dec 5, 2015
9c53c96
Actually add actions to menu elements
zalox Dec 5, 2015
cf9ecfc
Some cleanup
zalox Dec 5, 2015
ac1015f
Allow execution without arguments
zalox Dec 5, 2015
dcf6a93
Fix wrong string used
zalox Dec 5, 2015
2761340
Fixes non-keybinding actions to be active
zalox Dec 5, 2015
0f73933
Add example plugin
zalox Dec 5, 2015
d998a2b
Merge with eidheim
zalox Dec 5, 2015
33e660a
Add documentation and format api
zalox Dec 5, 2015
86ad841
Add reloading of plugins when edited
zalox Dec 5, 2015
73aa79d
Fix memory leak
zalox Dec 5, 2015
d9732b6
Fix more memory leaks, should be last
zalox Dec 5, 2015
be5a76f
Merge branch 'master' of https://github.com/cppit/jucipp
zalox Dec 6, 2015
fb5cb95
Revert juci library direction
zalox Dec 8, 2015
d57924c
Now adds libjuci directly into the interpreter
zalox Dec 8, 2015
d29fddb
Forgot header
zalox Dec 8, 2015
b1cca53
Merge branch 'master' of github.com:cppit/jucipp
zalox Dec 8, 2015
8ae5e02
Compiles in windows
zalox Dec 8, 2015
ac36871
Merge branch 'master' of https://github.com/zalox/jucipp
zalox Dec 8, 2015
cb118ff
Make append_path actually append, also use bp::path instead
zalox Dec 8, 2015
50eb53e
Now working in msys and arch
zalox Dec 8, 2015
392d957
Hopefully last time I forget this
zalox Dec 8, 2015
0168a81
Not touching reference count on functions, they get cleaned by python…
zalox Dec 8, 2015
23cfd3c
Simplify menu entry container, and improve reloading of modules to su…
zalox Dec 8, 2015
e65e455
Merge pull request #101 from eidheim/master
zalox Dec 9, 2015
8cdd2f1
Merge branch 'master' of github.com:cppit/jucipp
zalox Dec 9, 2015
54a9282
Add API for source views
zalox Dec 9, 2015
76c547a
Merge branch 'master' of github.com:cppit/jucipp
zalox Dec 10, 2015
45dd04f
Some cleanup
zalox Dec 10, 2015
cdc4a11
Now correctly loads menu items after new Singleton implementation
zalox Dec 10, 2015
a33ce53
Some cleanup and make menu parsing exception safe
zalox Dec 11, 2015
972969e
Add more defenitions to the api
zalox Dec 11, 2015
74a5fd0
Add snippet plugin, very unstable, do not touch
zalox Dec 11, 2015
4261e4a
Make sure plugins are found on first run
zalox Dec 15, 2015
5483e51
Merge branch 'master' of github.com:cppit/jucipp
zalox Dec 15, 2015
18b3528
Add python source view, currently very limited
zalox Dec 25, 2015
4489e16
More consistent error messaging
zalox Dec 25, 2015
e945cc1
Add syntax parsing method
zalox Dec 25, 2015
3d5ab10
Merge in master from cppit
zalox Dec 25, 2015
2625680
Python interpreter can now mock modules, sort of
zalox Dec 30, 2015
3a7c667
Stable for executing commands
zalox Feb 16, 2016
1984144
Merged with master
zalox Feb 16, 2016
368433b
Fix indention
zalox Feb 16, 2016
1b8388b
Add handle syntax error method to unify all syntax messages
zalox Feb 16, 2016
c265025
Update plugins to work
zalox Feb 16, 2016
0346fe9
Append missing rename
zalox Feb 16, 2016
c1f7bb2
Clean other exceptions as well
zalox Feb 17, 2016
56627ca
Recursive plugin menu builder
zalox Feb 21, 2016
cbcf9fb
Pretty good snippet plugin, gets confused by spellchecking and auto c…
zalox Feb 21, 2016
4580aa3
Merge branch 'master' of github.com:cppit/jucipp
zalox Feb 22, 2016
5d502cc
bugfix: actions are now activated without keybindings
zalox Feb 22, 2016
776ed72
Merge branch 'master' of github.com:cppit/jucipp
zalox Feb 23, 2016
3281c4f
bugfix: modules that require argv will no longer get attribute errors…
zalox Feb 23, 2016
da16bc6
feature: now handles all errors better
zalox Feb 24, 2016
38e6b87
cleanup: remove unnecessary brackets and spaces
zalox Feb 24, 2016
8ef4ce9
Use new mingw path from terminal and clean interpreter constructor
zalox Feb 24, 2016
d0fc6af
feature: fixes for windows
zalox Feb 24, 2016
3912894
feature: if terminal can't capture error messages they get forwarded …
zalox Feb 24, 2016
e38d406
Import does not need to be wrapped. Removing the exec with parameters…
zalox Mar 26, 2016
f1c9c5e
Merge branch 'master' of github.com:cppit/jucipp into m
zalox Mar 26, 2016
e778fcd
Remove old import call... forgot this
zalox Mar 26, 2016
02f7711
bugfix: correct name for application files and lldb headers
zalox Mar 31, 2016
ec9bb81
feature: Rework api to use PythonGObjectIntrospection and add reload …
zalox Mar 31, 2016
34797cc
Cleanup of plugin features
zalox Mar 31, 2016
c94f78d
Now finds libraries correctly
zalox Apr 1, 2016
6b95f38
Remove unused header
zalox Apr 1, 2016
9cd856e
Upgrade to pybind11 v.1.3 with due to api changes
zalox Apr 2, 2016
0fa6932
Put new snippet implementation into version control, might be moved l…
zalox Apr 2, 2016
b7006a4
Add site-packages location configuration
zalox Apr 2, 2016
d9e9a61
More fixes due to pybind11 v1.3
zalox Apr 2, 2016
d1d7b92
Merge branch 'master' of github.com:cppit/jucipp
zalox Apr 2, 2016
f9f46d2
Load config before reading site-packages. Working on solution to run …
zalox Apr 2, 2016
475033f
Fix memory leak and correct version of pygobject
zalox Apr 2, 2016
362284b
Send buffer instead of textview
zalox Apr 3, 2016
d288cb7
Move plugins from files.h and make it possible to define plugin direc…
zalox Apr 3, 2016
e06bb5a
For some reason this still was here
zalox Apr 3, 2016
4a1896a
Add application and menu to beta
zalox Apr 4, 2016
3a95d3b
Plugins now uses beta features for menu
zalox Apr 4, 2016
ca73937
Turn off old menu feature, I'm keeping this for plugins without
zalox Apr 4, 2016
516a383
Merge branch 'master' of github.com:cppit/jucipp
zalox Apr 4, 2016
e10188b
Remove plugins folder and revert back to files.h
zalox Apr 4, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,7 @@
[submodule "libclangmm"]
path = libclangmm
url = https://github.com/cppit/libclangmm.git
[submodule "pybind11"]
path = pybind11
url = https://github.com/wjakob/pybind11.git
branch = stable
7 changes: 2 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
cmake_minimum_required (VERSION 2.8.4)

set(project_name juci)
#set(module juci_to_python_api)
set(application_name "juci")

#set(lib_install_path "/usr/local/lib/python2.7/dist-packages/")

project (${project_name})
project (${application_name})

add_subdirectory("src")

Expand Down
1 change: 0 additions & 1 deletion docs/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ Install dependencies:
```sh
sudo apt-get install git cmake make g++ libclang-3.5-dev liblldb-3.5-dev clang-format-3.5 pkg-config libboost-system-dev libboost-thread-dev libboost-filesystem-dev libboost-log-dev libboost-regex-dev libgtksourceviewmm-3.0-dev aspell-en libaspell-dev
```

Get juCi++ source, compile and install:
```sh
git clone --recursive https://github.com/cppit/jucipp
Expand Down
67 changes: 0 additions & 67 deletions plugins/snippet.py

This file was deleted.

1 change: 1 addition & 0 deletions pybind11
Submodule pybind11 added at d2385e
171 changes: 80 additions & 91 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,14 @@ if(MSYS)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DMSYS_PROCESS_USE_SH")
endif()

INCLUDE(FindPkgConfig)

find_package(LibClang REQUIRED)
find_package(Boost 1.54 COMPONENTS thread log regex system filesystem REQUIRED)
find_package(ASPELL REQUIRED)
find_package(PythonLibs 3 REQUIRED)
set(PYBIND11_INCLUDE_DIR ../pybind11/include)
set(LIBCLANGMM_INCLUDE_DIR ../libclangmm/src)
set(TINY_PROCESS_INCLUDE_DIR ../tiny-process-library)

string(REPLACE libclang liblldb LIBLLDB_LIBRARIES "${LIBCLANG_LIBRARIES}")
if(EXISTS "${LIBLLDB_LIBRARIES}")
set(LIBLLDB_FOUND TRUE)
Expand All @@ -41,129 +46,113 @@ else()
set(LIBLLDB_LIBRARIES "")
message("liblldb not found. Building juCi++ without debugging support")
endif()
#find_package(PythonLibs 2.7)

#find_package(Boost 1.55 COMPONENTS python thread log system filesystem REQUIRED)
find_package(Boost 1.54 COMPONENTS thread log system filesystem regex REQUIRED)

pkg_check_modules(GTKMM gtkmm-3.0 REQUIRED) # The name GTKMM is set here for the variables abouve

include(FindPkgConfig)
pkg_check_modules(GTKMM gtkmm-3.0 REQUIRED)
pkg_check_modules(GTKSVMM gtksourceviewmm-3.0 REQUIRED)
pkg_check_modules(PYGOBJECT pygobject-3.0 REQUIRED)


set(global_includes
${Boost_INCLUDE_DIRS}
${GTKMM_INCLUDE_DIRS}
${GTKSVMM_INCLUDE_DIRS}
${LIBCLANG_INCLUDE_DIRS}
${LIBCLANGMM_INCLUDE_DIR}
${ASPELL_INCLUDE_DIR}
${PYTHON_INCLUDE_DIRS}
${PYBIND11_INCLUDE_DIR}
${TINY_PROCESS_INCLUDE_DIR}
${PYGOBJECT_INCLUDE_DIRS}
)

find_package(ASPELL REQUIRED)
set(global_libraries
${LIBCLANG_LIBRARIES}
${GTKMM_LIBRARIES}
${GTKSVMM_LIBRARIES}
${Boost_LIBRARIES}
${ASPELL_LIBRARIES}
${PYTHON_LIBRARIES}
${LIBLLDB_LIBRARIES}
)

set(source_files juci.h
juci.cc
menu.h
menu.cc
source.h
source.cc
source_clang.h
source_clang.cc
selectiondialog.h
selectiondialog.cc
config.h
set(application_files
cmake.cc
cmake.h
config.cc
filesystem.h
filesystem.cc
window.cc
window.h
config.h
dialogs.cc
dialogs.h
# api.h
# api.cc
directories.cc
directories.h
dispatcher.cc
dispatcher.h
entrybox.cc
entrybox.h
files.h
filesystem.cc
filesystem.h
juci.cc
juci.h
logging.h
main.cc
menu.cc
menu.h
notebook.cc
notebook.h
entrybox.h
entrybox.cc
directories.h
directories.cc
terminal.h
terminal.cc
tooltips.h
tooltips.cc
cmake.h
cmake.cc
dialogs.cc
project.h
project.cc
project.h
project_build.h
project_build.cc
dispatcher.h
dispatcher.cc
python_api.cc
python_api.h
python_interpreter.cc
python_interpreter.h
selectiondialog.cc
selectiondialog.h
source.cc
source.h
source_clang.cc
source_clang.h
terminal.cc
terminal.h
tooltips.cc
tooltips.h
window.cc
window.h

../libclangmm/src/CodeCompleteResults.cc
../libclangmm/src/CompilationDatabase.cc
../libclangmm/src/CompileCommand.cc
../libclangmm/src/CompileCommands.cc
../libclangmm/src/CompletionString.cc
../libclangmm/src/Cursor.cc
../libclangmm/src/Diagnostic.cc
../libclangmm/src/Diagnostic.cc
../libclangmm/src/Index.cc
../libclangmm/src/SourceLocation.cc
../libclangmm/src/SourceRange.cc
../libclangmm/src/Token.cc
../libclangmm/src/Tokens.cc
../libclangmm/src/TranslationUnit.cc
../libclangmm/src/Diagnostic.cc
../libclangmm/src/TranslationUnit.cc
../libclangmm/src/Utility.cc

../tiny-process-library/process.cpp)

if(LIBLLDB_FOUND)
list(APPEND source_files debug_clang.h debug_clang.cc)
list(APPEND application_files debug_clang.h debug_clang.cc)
endif()

if(MSYS)
list(APPEND source_files dialogs_unix.cc) #dialogs_win.cc does not work any more because of missing SHCreateItemFromParsingName
list(APPEND source_files ../tiny-process-library/process_win.cpp)
list(APPEND application_files dialogs_unix.cc ../tiny-process-library/process_win.cpp)
else()
list(APPEND source_files dialogs_unix.cc)
list(APPEND source_files ../tiny-process-library/process_unix.cpp)
list(APPEND application_files dialogs_unix.cc ../tiny-process-library/process_unix.cpp)
endif()

add_executable(${project_name} ${source_files})

# add_library(${module} SHARED
# api
# api_ext)

include_directories(
${Boost_INCLUDE_DIRS}
# ${PYTHON_INCLUDE_DIRS}
${GTKMM_INCLUDE_DIRS}
${GTKSVMM_INCLUDE_DIRS}
${LIBCLANG_INCLUDE_DIRS}
${ASPELL_INCLUDE_DIR}
../libclangmm/src
../tiny-process-library
)

link_directories(
${GTKMM_LIBRARY_DIRS}
${GTKSVMM_LIBRARY_DIRS}
${Boost_LIBRARY_DIRS}
# ${PYTHON_INCLUDE_DIRS}
${LIBCLANG_LIBRARY_DIRS}
)

# set_target_properties(${module}
# PROPERTIES PREFIX ""
# LIBRARY_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/lib/")

# target_link_libraries(${module} ${PYTHON_LIBRARIES} ${Boost_LIBRARIES})
# target_link_libraries(${module} ${Boost_LIBRARIES})

target_link_libraries(${project_name}
${LIBCLANG_LIBRARIES}
${GTKMM_LIBRARIES}
${GTKSVMM_LIBRARIES}
${Boost_LIBRARIES}
${ASPELL_LIBRARIES}
${LIBLLDB_LIBRARIES}
#${PYTHON_LIBRARIES}
)
include_directories(${global_includes})
add_executable(${application_name} ${application_files})
target_link_libraries(${application_name} ${global_libraries})

# install(TARGETS ${project_name} ${module}
install(TARGETS ${project_name}
install(TARGETS ${application_name}
RUNTIME DESTINATION bin
# LIBRARY DESTINATION ${lib_install_path}
)
Loading