tm1++: A Notepad++ Plugin

A forum to post information about tools which are free and open source.
Post Reply
bgregs
Posts: 77
Joined: Wed Sep 12, 2018 11:19 am
OLAP Product: TM1 / Planning Analytics
Version: 2.0
Excel Version: 2016

tm1++: A Notepad++ Plugin

Post by bgregs »

Hi Everyone,

I'm back with another hobby project that may actually offer some useful features. Before I get too far into the overview, please note that this is very much in early development (only 4 evenings of coding at this point), and should not be used outside of a development environment. As always, if there is interest in this project, let me know and I'll continue to work on it as time permits.

Now to get into the fun stuff:

Features:
  • Completed: List all cubes for a model
  • Completed: Open a rule for a cube (done by highlighting the name and running "Open Rule")
  • Mostly Completed: Save rule edits made directly in Notepad++
  • Coming Soon: List all TIs for a model
  • Coming Soon: Open TIs
  • Coming Soon: Save TIs
Architecture:
  • (External)CPR: Handles the http requests (I would like to replace this with asio to remove dependencies on libcurl, but that will be later)
  • (External)Nlohmann/json: Handles the parsing of json objects
  • TM1Session: A very basic framework for handling all TM1 related rest api calls behind the scenes
  • ScintillaHelper: This one's probably a given, but necessary to handle the behind the scenes integration with Notepad++
Steps to Run:
  • Download the .zip from my github page and extract the .dll
  • Manually add the plugin to Notepad++ (google it if you're not sure)
  • Add both libcurl.dll and zlib1.dll files to the same plugin directory as tm1++.dll
  • Add the tm1++.ini file to the root directory of the Notepad++ install (where the .exe is) - this will obviously change in the future, but it works for now
  • Note: A sample of tm1++.ini is located on the github page - omitting a Namespace parameter will assume Basic authentication
  • Note: The current tm1++.dll is compiled in x64 release mode - you will need to make sure the same is true for libcurl and zlib1; once development progresses and I link statically, you won't need to mess with it (for now .dll greatly speeds up my dev time though)
Github: https://github.com/bgregs514/Npp_Plugins

The rule portion is mostly completed, I just need to remove some hardcoding in order to get it to reference cubes from the header correctly. I have already developed a TM1 session class to handle the rest api calls, a Scintilla helper class, and laid the framework for most plugin functions, so I'm really hoping most of heavy lifting is behind me and I can wrap up the remaining features relatively quickly.

At this point in time I have not made the source code public due to how much it is changing day-to-day. That being said, if anybody is interested in either contributing or forking a copy for their own, just let me know and I can open it up.

Some final thoughts - I mostly use these TM1 projects as test beds for my other projects, but if anybody does find the TM1 projects useful just let me know and I can shift development time over to them. I feel that this one in particular may have more useful features than my previous stuff, so there's a higher chance that I'll actually see it through to completion. I'll keep the github page updated with recent enhancements so I don't spam this thread, so if you're interested make sure to check there. Thanks again for reading, and all feedback is welcome.
Attachments
rule.png
rule.png (17.74 KiB) Viewed 27874 times
menu.png
menu.png (10.22 KiB) Viewed 27874 times
cube_list.png
cube_list.png (18.78 KiB) Viewed 27874 times
Wim Gielis
MVP
Posts: 3103
Joined: Mon Dec 29, 2008 6:26 pm
OLAP Product: TM1, Jedox
Version: PAL 2.0.9.18
Excel Version: Microsoft 365
Location: Brussels, Belgium
Contact:

Re: tm1++: A Notepad++ Plugin

Post by Wim Gielis »

Sounds interesting !
Best regards,

Wim Gielis

IBM Champion 2024
Excel Most Valuable Professional, 2011-2014
https://www.wimgielis.com ==> 121 TM1 articles and a lot of custom code
Newest blog article: Deleting elements quickly
Post Reply