Github user sanjaydasgupta commented on the issue: https://github.com/apache/zeppelin/pull/3068 This is a great idea @zjffdu. There are also a few other things to think of - like automatically generating the name of the enabler parameter on a per-interpreter basis (`zeppelin.shell.interpolation` in your sample code above). This can be done by adding a static map to `interpreter.java` that translates from interpreter class name to parameter name, but I think we will obtain greater mileage from the following 2-part strategy: 1) refactor the `interpret(...)` method in all of the existing interpreters once to introduce the 2 lines that have to change in each interpreter (no need to introduce a new method like `interpreter2(...)` 2) add a map to `interpreter.java` that translates from interpreter class name to parameter name, for use in the updated code in (1) above. This map could be filled with unused names in advance without doing any harm. This is more or less what I had in mind during [this earlier discussion](https://github.com/apache/zeppelin/pull/2502#issuecomment-323272122), but I did not want to start it then as there was other interpreter refactoring work going on. Perhaps this is a better time to resume that thought :-) Allow me to ask the opinions of a wider group of reviewers - what do you think @felixcheung @jongyoul @zjffdu ?
---